【Docker项目实战】使用Docker部署Gitblit服务器
【Docker项目实战】使用Docker部署Gitblit服务器
- 一、Gitblit介绍
- 1.1 Gitblit 介绍
- 1.2 主要特点
- 二、本次实践规划
- 2.1 本地环境规划
- 2.2 本次实践介绍
- 三、本地环境检查
- 3.1 检查Docker服务状态
- 3.2 检查Docker版本
- 3.3 检查docker compose 版本
- 四、下载Gitblit镜像
- 五、部署Gitblit应用
- 5.1 创建部署目录
- 5.2 编辑部署文件
- 5.3 创建Gitblit容器
- 5.4 查看Gitblit容器状态
- 5.5 检查Gitblit容器日志
- 六、访问Gitblit服务
- 6.1 http访问效果
- 6.2 https访问效果
- 七、总结
一、Gitblit介绍
1.1 Gitblit 介绍
Gitblit是一个完全开源的纯 Java 软件,专注于为 Git 提供一个全面的解决方案,涵盖存储库管理、代码浏览以及通过多种协议的服务提供。作为一个纯 Java 应用程序,Gitblit 非常适合那些已经拥有 Java 环境的企业或团队使用,它能够无缝集成到现有的基础设施中。
1.2 主要特点
-
开源与免费
- Gitblit 基于 Apache License 2.0 协议发布,这意味着它可以被自由地使用、修改和分发,对于中小企业和个人开发者来说是一个成本效益高的选择。
-
多协议支持
- 支持通过 GIT、HTTP 和 SSH 这三种传输协议来服务 Git 存储库,提供了灵活的选择以适应不同的网络环境和安全要求。
-
用户友好的管理界面
- 提供了一个基于 Web 的管理控制台,使得管理员可以轻松地进行用户管理、权限设置、存储库创建等操作。
-
代码浏览与搜索
- 内置了强大的代码浏览功能,允许用户查看提交历史、分支信息、文件内容以及差异比较等。此外,还支持代码搜索功能,便于快速定位所需代码片段。
-
集成性
- Gitblit 可以很容易地与现有的工具链集成,例如 Jenkins、Redmine 等,增强了持续集成和项目管理的能力。
-
轻量级部署
- 由于是纯 Java 开发,Gitblit 不仅跨平台(Windows、Linux、macOS),而且对硬件资源的要求较低,适合各种规模的团队使用。
-
安全性
- 提供了详细的权限控制机制,可以针对不同的用户或用户组设定访问权限,保护代码的安全性和隐私性。
-
插件系统
- Gitblit 支持插件扩展,可以根据需要增加额外的功能,比如与第三方认证系统的集成等,提高了灵活性和可定制性。
二、本次实践规划
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为|Ubuntu 22.04.1。
| hostname | IP地址 | 操作系统版本 | Docker版本 | 部署项目 |
|---|---|---|---|---|
| jeven01 | 192.168.3.88 | Ubuntu 22.04.1 LTS | 27.1.1 | Gitblit |
2.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署Gitblit服务器。
三、本地环境检查
3.1 检查Docker服务状态
检查Docker服务是否正常运行,确保Docker正常运行。
root@jeven01:~# systemctl status docker
● docker.service - Docker Application Container EngineLoaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)Active: active (running) since Wed 2025-04-02 05:59:08 UTC; 4min 6s ago
TriggeredBy: ● docker.socketDocs: https://docs.docker.comMain PID: 906 (dockerd)Tasks: 29Memory: 143.2MCPU: 1.172sCGroup: /system.slice/docker.service
3.2 检查Docker版本
检查Docker版本
root@jeven01:~# docker -v
Docker version 27.1.1, build 6312585
3.3 检查docker compose 版本
检查Docker compose版本,确保2.0以上版本。
root@jeven01:~# docker compose version
Docker Compose version v2.19.1
四、下载Gitblit镜像
拉取Gitblit镜像,拉取相关镜像如下所示:
root@jeven01:~# docker pull registry.cn-hangzhou.aliyuncs.com/jeson/gitblit:v1.9.1
v1.9.1: Pulling from jeson/gitblit
57df1a1f1ad8: Pull complete
71e126169501: Pull complete
1af28a55c3f3: Pull complete
a9777c2d5c29: Pull complete
9248106993db: Pull complete
1f74ab5b5b3e: Pull complete
f33944599fe3: Pull complete
3ec5e998e40a: Pull complete
3a0313c9dd93: Pull complete
f2c7438691bf: Pull complete
Digest: sha256:d683b5e04f737315f047baec795d70bb21fa1a0ef8a8956044694f96c6c2f677
Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/jeson/gitblit:v1.9.1
registry.cn-hangzhou.aliyuncs.com/jeson/gitblit:v1.9.1
五、部署Gitblit应用
5.1 创建部署目录
- 创建部署目录
mkdir -p /data/gitblit/data && cd /data/gitblit
5.2 编辑部署文件
在`部署目录下,创建docker-compose.yaml文件,如下所示:
vim docker-compose.yaml
version: '3.9'
services:gitblit:image: 'registry.cn-hangzhou.aliyuncs.com/jeson/gitblit:v1.9.1'volumes:- '/data/gitblit/data:/opt/gitblit-data'ports:- '29418:29418'- '9418:9418'- '8443:8443'- '8088:8080'restart: alwayscontainer_name: gitblit
5.3 创建Gitblit容器
执行以下命令,创建Gitblit容器。
root@jeven01:/data/gitblit# docker compose up -d
[+] Running 2/2✔ Network gitblit_default Created 0.1s✔ Container gitblit Started 0.2s

5.4 查看Gitblit容器状态
检查Gitblit容器运行状态,确保Gitblit容器正常启动。
root@jeven01:/data/gitblit# docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
gitblit registry.cn-hangzhou.aliyuncs.com/jeson/gitblit:v1.9.1 "/bin/sh -c /run.sh" gitblit 3 minutes ago Up 3 minutes 0.0.0.0:8443->8443/tcp, :::8443->8443/tcp, 0.0.0.0:9418->9418/tcp, :::9418->9418/tcp, 0.0.0.0:29418->29418/tcp, :::29418->29418/tcp, 0.0.0.0:8088->8080/tcp, :::8088->8080/tcp
5.5 检查Gitblit容器日志
检查Gitblit容器日志,确保Gitblit服务正常启动。
docker compose logs

六、访问Gitblit服务
6.1 http访问效果
浏览器地址:
http://<个人的服务器IP>:8088,访问Gitblit服务的初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。

登录Gitblit首页,默认账号密码如下:
- 默认账号:admin
- 默认密码:admin


6.2 https访问效果
浏览器地址:
https://<个人的服务器IP>:8443,使用https方式访问Gitblit服务的初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。


七、总结
通过本次实战,我们学习了如何使用 Docker 快速部署 Gitblit 服务器,体验了从环境配置到服务访问的全过程,验证了 Docker 在简化应用部署方面的强大功能。此次实践不仅帮助我们掌握了 Gitblit 的部署方法,同时也提升了对 Docker 和 Docker Compose 工具链的应用能力。未来,我们可以基于此基础进一步探索更多高级配置,如安全增强、性能优化等,以满足不同的业务需求。
相关文章:
【Docker项目实战】使用Docker部署Gitblit服务器
【Docker项目实战】使用Docker部署Gitblit服务器 一、Gitblit介绍1.1 Gitblit 介绍1.2 主要特点 二、本次实践规划2.1 本地环境规划2.2 本次实践介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四、下载Gitblit镜像五、部署Gitbli…...
Vitis: 使用自定义IP时 Makefile错误 导致编译报错
参考文章: 【小梅哥FPGA】 Vitis开发中自定义IP的Makefile路径问题解决方案 Vitis IDE自定义IP Makefile错误(arm-xilinx-eabi-gcc.exe: error: *.c: Invalid argument)解决方法 Vitis 使用自定义IP时: Makefile 文件里的语句是需要修改的,…...
helm的go模板语法学习
1、helm chart 1.0、什么是helm? 介绍:就是个包管理器。理解为java的maven、linux的yum就好。 安装方法也可参见官网: https://helm.sh/docs/intro/install 通过前面的演示我们知道,有了helm之后应用的安装、升级、查看、停止都…...
AI 语音公司 ElevenLabs 进军亚太市场设立东京子公司;EverTutor Live :语音交互 AI 教育平台丨日报
开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 技术 」、「有亮点的 产品 」、「有思考的 文章 」、「有态度的 观…...
STM32启动流程详解
STM32启动流程详解 本文档详细介绍STM32微控制器从上电到main函数执行的完整启动流程。 1. 上电与复位过程 当STM32芯片上电或复位时,硬件会执行以下步骤: 上电复位(POR)/低电平复位(PDR): 芯片接通电源或NRST引脚置低时触发初始PC值设置: 程序计数器…...
Langchain + Gemini API调用基本操作
本文参考Langchain中ChatGoogleGenerativeAI的官方文档,在本地的jupyter notebook中运行。 关于API的细节在官方文档最开头给出: 我们在使用时,可以选择model"gemini-2.0-flash-001"或者生成图片的ChatGoogleGenerativeAI(model“…...
利用 Python 和 AI 技术创作独特的图像艺术作品
1. 项目目标 生成艺术作品:利用 AI 模型(如 Stable Diffusion)生成具有艺术风格的图像。自定义风格:通过文本提示(prompt)控制图像的艺术风格(如赛博朋克、印象派、超现实主义等)。…...
Matlab绘图(三)——设置图例的位置
❤️1. 使用 Location 参数设置图例位置 h_legend legend({系列 A, 系列 B, 系列 C}, ...FontName, Arial, ... % 指定字体名称FontSize, 10, ... % 指定字体大小Location, northeast); % 指定初始位置在右上角调用 legend 函数,并通过 Location 参数指定图例放…...
【数据结构】4.单链表实现通讯录
在上一篇文章我们学会了用单链表来实现各种方法,在这一篇文章我们将在单链表的基础上实现通讯录。 0、准备工作 实现通讯录之前,我们还需要在单链表的基础上添加2个文件,头文件Contact.h和源文件Contact.c。Contact.c来实现通讯录方法的声明…...
接口自动化测试(一)
一、HTTP请求的核心概念及原理详解 HTML:超文本标记语言-----通过<标记符>内容</标记符>格式-------页面 URL:统一资源定位符 返回数据有很多:页面、图片、视频,都可以进行返回---统称为:资源HTTP:超文本传输协议(请求-响应的协…...
【JavaEE】Spring AOP的注解实现
目录 一、AOP 与 Spring AOP二、Spring AOP简单实现三、详解Spring AOP3.1 Spring AOP 核心概念3.1.1 切点(Pointcut)3.1.2 连接点(Join Point)3.1.3 通知(Advice)3.1.4 切面(Aspect)…...
从零开始实现 MobileViT 注意力机制——轻量级Transformer Vision Model 的新思路
从零开始实现 MobileViT 注意力机制——轻量级Transformer Vision Model 的新思路 近年来,计算机视觉领域中 Transformer 模型的崛起为图像处理带来了新的活力。特别是在 ViT(Vision Transformer)模型提出之后,Transformer 在图像…...
揭秘大数据 | 22、软件定义存储
揭秘大数据 | 19、软件定义的世界-CSDN博客 揭秘大数据 | 20、软件定义数据中心-CSDN博客 揭秘大数据 | 21、软件定义计算-CSDN博客 老规矩,先把这个小系列的前三篇奉上。今天书接上文,接着叙软件定义存储的那些事儿。 软件定义存储源于VMware公司于…...
OpenCV 图形API(37)图像滤波-----分离过滤器函数sepFilter()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 应用一个可分离的线性滤波器到一个矩阵(图像)。 该函数对矩阵应用一个可分离的线性滤波器。也就是说,首先&a…...
flutter下载SDK环境配置步骤详解
目录 1.Flutter官网地址、SDK下载地址? 1.1 选择你电脑的系统 2.配置环境 3.解决环境报错 zsh:command not found:flutter 1.Flutter官网地址、SDK下载地址? flutter官网地址: URL 1.1 选择你电脑的系统 下载解压动目录就OK了 2.配置环境 1、打开命令行…...
数据结构与算法入门 Day 0:程序世界的基石与密码
🌟数据结构与算法入门 Day 0:程序世界的基石与密码🔑 ps:接受到了不少的私信反馈,说应该先把前置的知识内容做一个梳理,所以把昨天的文章删除了,重新开启今天的博文写作 Hey 小伙伴们ÿ…...
vscode终端运行windows服务器的conda出错
远程windows服务器可以运行,本地vscode不能。 打开vscode settings.json文件 添加conda所在路径...
Elasticsearch 查询排序报错总结
Elasticsearch 查询sort报错总结 文章目录 Elasticsearch 查询`sort`报错总结错误1、使用Es对 `sort` 进行排序字段类型的要求1.1、数值类型(如 `integer`、`long`、`float`、`double`)1.2、日期类型(如 `date`)1.3、字符串类型(如 `keyword`、`text`)1.4、布尔类型(`bo…...
“大湾区珠宝艺境花园”璀璨绽放第五届消博会
2025年4月13日,第五届中国国际消费品博览会(以下简称"消博会")重要主题活动——《大湾区珠宝艺境花园》启动仪式在海南国际会展中心2号馆隆重举行。由广东省金银珠宝玉器业厂商会组织带领粤港澳大湾区优秀珠宝品牌,以“…...
十、自动化函数+实战
Maven环境配置 1.设计测试用例 2.创建空项目 1)添加需要的依赖pom.xml <dependencies> <!-- 截图配置--><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</…...
Day09【基于jieba分词和RNN实现的简单中文分词】
基于jieba分词和RNN实现的中文分词 目标数据准备主程序预测效果 目标 本文基于给定的中文词表,将输入的文本基于jieba分词分割为若干个词,词的末尾对应的标签为1,中间部分对应的标签为0,同时将分词后的单词基于中文词表做初步序列…...
自动化测试——selenium
简介 Selenium 是一个广泛使用的自动化测试工具,主要用于 Web 应用程序的自动化测试。它能实现的功能是网页的自动化操作,例如自动抢票刷课等。同时你应该也见到过有些网站在打开之后并没有直接加载出网站的所有内容,比如一些图片等等&#x…...
java和python实现mqtt
说明: MQTT 异步通信系统功能文档 系统概述 本系统基于 MQTT 协议实现异步通信,包含三个核心组件: Broker(消息代理):负责消息的路由和转发。 Client(主客户端):定时发…...
5.9 《GPT-4调试+测试金字塔:构建高可靠系统的5大实战策略》
5.4 测试与调试:构建企业级质量的保障体系 关键词:测试金字塔模型、GPT-4调试助手、LangChain调试模式、异步任务验证 测试策略设计(测试金字塔实践) #mermaid-svg-RblGbJVMnCIShiCW {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill…...
Linux——进程通信
我们知道,进程具有独立性,各进程之间互不干扰,但我们为什么还要让其联系,建立通信呢?比如:数据传输,资源共享,通知某个事件,或控制某个进程。因此,让进程间建…...
学习笔记十三—— 理解 Rust 闭包:从语法到 impl Fn vs Box<dyn Fn>
🧠 理解 Rust 闭包:从语法到 impl Fn vs Box 📚 目录 闭包是什么?和普通函数有什么不同?闭包的语法长什么样?闭包“捕获变量”是什么意思?闭包和所有权的关系Fn、FnMut、FnOnce 三种闭包类型的…...
【免费参会合集】2025年生物制药行业展会会议表格整理
全文精心整理, 建议今年参会前都好好收藏着,记得点赞! 医药人非常吃资源,资源从何而来?作为一名从事医药行业的工作者,可以很负责任的告诉诸位,其中非常重要的一个渠道就是会议会展! 建议所有医…...
腾讯云开发+MCP:旅游规划攻略
1.登录注册好之后进入腾讯云开发 2.创建环境 4.创建好环境之后点击去开发 5.进入控制台后,选择AI,找到MCP 6.点击创建MCP Server 使用腾讯云开发创建MCP目前需要云开发入门版99/月,我没开通,所以没办法往下进行。...
银河麒麟系统 达梦8 安装 dlask 框架后端环境
适配的一套环境为 dmPython2.5.8 dmSQLAlchemy1.4.39 Flask2.0.3 Flask-Cors3.0.10 Flask-SQLAlchemy2.5.1 SQLAlchemy1.4.54 Werkzeug2.2.2其中 # sqlalchemy-dm1.4.39 通过dmdbms目录内文件进行源码安装 (MindSpore) [ma-user python]$pwd /home/syl/dmdbms/drivers/python…...
Cribl (实验) vpc-flow 数据抽样
先看文档: Firewall Logs: VPC Flow Logs, Cisco ASA, Etc. | Cribl Docs Firewall Logs: VPC Flow Logs, Cisco ASA, Etc. Recipe for Sampling Firewall Logs Firewall logs are another source of important operational (and security) data. Typical examples include Ama…...
