使用 Docker 部署 Gitlab 代码托管服务器
搞软件开发少不了代码托管及版本控制,尤其是多人协作项目中更是少不了代码合并。在使用 git 之前,自己的代码总是隔段时间以"项目名称_XXXX年xx月xx日.tar.gz"这样的方式进行备份 。使用 git 进行版本控制后,自己再也不用担心代码改乱掉。平常主要使用的 git 代码托管平台为 GitHub 和阿里云 Code ,后来自己购买了 HPE ProLiant MicroServer Gen8 ,便使用 Docker 搭建了一个本地的代码托管服务器 Gitlab 。具体搭建步骤如下:
一、创建数据存放目录
这里将 Gitlab 数据存放至 /home/pbversion/Gitlab/ 目录下,如需更换目录以下对应位置自行替换,确保其具有读写权限。
mkdir -p /home/pbversion/Gitlab/config
mkdir -p /home/pbversion/Gitlab/logs
mkdir -p /home/pbversion/Gitlab/data
该 Gitlab 数据存放目录切不可删除!!!
后期做服务器迁移时该目录务必保证其完整性,除非您真的不想要这些数据。
后期做服务器迁移时该目录务必保证其完整性,除非您真的不想要这些数据。
二、导入 Gitlab 官方 Docker 镜像
docker pull gitlab/gitlab-ce:11.1.4-ce.0
11.1.4-ce.0 为发布版本号,可根据需要自行替换相应版本号。
三、启动 Docker 镜像
docker run --name gitlab \
--detach \
--restart always \
--hostname 192.168.11.249 \
--env GITLAB_OMNIBUS_CONFIG="external_url 'http://192.168.11.249:10080'; gitlab_rails['lfs_enabled'] = true; gitlab_rails['gitlab_shell_ssh_port'] = 10022;" \
--publish 10443:443 --publish 10080:10080 --publish 10022:22 \
--volume /home/pbversion/Gitlab/config:/etc/gitlab \
--volume /home/pbversion/Gitlab/logs:/var/log/gitlab \
--volume /home/pbversion/Gitlab/data:/var/opt/gitlab \
--privileged=true \
gitlab/gitlab-ce:11.1.4-ce.0
192.168.11.249 为服务器访问IP地址,若有对应域名可使用域名,该字段根据自己实际情况设置。
对外开放的访问端口: 10080 为 http 访问端口; 10022 为 ssh 访问端口; 10443 为 https 访问端口。可根据需要自行更改相应端口。
11.1.4-ce.0 为启动的 Gitlab 的 Docker 镜像版本号,升级版本自行替换对应的镜像版本号。
四、升级 Gitlab 服务版本
1. 先停止并删除正在运行的 gitlab 的 Docker 镜像运行实例
docker stop gitlab
docker rm gitlab
2. 参考上述步骤二下载要升级替换的 Gitlab 镜像版本
docker pull gitlab/gitlab-ce:latest
这里举例替换为官方最新构建版本 latest 。
3. 参考上述步骤三启动对应升级后的 Gitlab 镜像
五、故障维护
1. 查看容器运行状态
(下图中标示的绿色下划线代表状态,蓝色下划线代表容器名称)
2. 查看异常的容器启动运行日志,根据日志查看对应运行状态或相关故障信息
docker logs gitlab
3. 当启动失败可以简单尝试重新启动容器,具体步骤如下
- 参考上述步骤四 .1 先停止并删除正在运行的 gitlab 的 Docker 镜像运行实例。
- 参考上述步骤三重新启动新的 gitlab 的 Docker 镜像运行实例。
六、其他帮助信息
遇到其他一些问题或者需要配置其他一些功能可参考官方帮助文档。