第6章 Docker应用实战-Docker部署GitLab
作者:王珂
邮箱:[email protected]
前言
本节主要给大家介绍如何利用Docker、Docker-Compose快速搭建有个GitLab环境,以及在安装部署过程中碰到的问题。
一、环境准备
-
CentOS7
-
Docker
-
Docker-Compose(如果想使用docker-compose命令部署时需要)
-
GitLab 13.6.7-ce.0
具体请参考《第1章 Docker应用实战-基础环境准备》
由于GitLab占用的内存比较大,推荐将内存调整为4G的大小。我们采用的GitLab是社区版,GitLab的镜像也比较大,大家在安装之前,请先拉取好GitLab的镜像,镜像版本:gitlab-13.6.7-ce.0。
二、部署GitLab
我自己的习惯将应用都安装在/opt/目录下,如果是安装GitLab,我会在该目录下在创建一个gitlab目录。安装具体版本的GitLab时,我还会再创建下级目录gitlab-<版本号>,此次要部署的版本是13.6.7-ce.0,因此我会创建目录 /opt/gitlab/gitlab-13.6.7-ce.0。
2.1 Docker部署GitLab
- 拉取镜像
镜像比较大,大概3,4个G,需要耐心等待
docker pull gitlab/gitlab-ce:13.6.7-ce.0
- 创建目录
# 配置文件目录
mkdir -p /opt/gitlab/gitlab-13.6.7-ce.0/etc
# 数据目录
mkdir -p /opt/gitlab/gitlab-13.6.7-ce.0/data
# 日志目录
mkdir -p /opt/gitlab/gitlab-13.6.7-ce.0/log
- 执行安装
docker run \
--name gitlab-13.6.7-ce.0 \
--detach \
--publish 8010:80 \
--publish 8443:443 \
--publish 2222:22 \
--restart always \
-v /opt/gitlab/gitlab-13.6.7-ce.0/etc:/etc/gitlab \
-v /opt/gitlab/gitlab-13.6.7-ce.0/data:/var/opt/gitlab \
-v /opt/gitlab/gitlab-13.6.7-ce.0/log:/var/log/gitlab \
--privileged=true \
gitlab/gitlab-ce:13.6.7-ce.0
说明:
8010是web控制台访问端口
8443是web控制台https访问端口
2222是ssh端口,由于ssh默认端口为22,建议这里不用配置
- 访问
2.2 Docker-Compose部署GitLab
使用docker-compose部署GitLab,部署的目录与用Docker安装时规则一致,我们仍然部署在/opt/gitlab/gitlab-13.6.7-ce.0目录下。
- 拉取镜像
docker pull gitlab/gitlab-ce:13.6.7-ce.0
- 创建目录
mkdir -p /opt/gitlab/gitlab-13.6.7-ce.0/etc
mkdir -p /opt/gitlab/gitlab-13.6.7-ce.0/data
mkdir -p /opt/gitlab/gitlab-13.6.7-ce.0/log
- 编辑docker-compose.yml
version: '3.1'
services:
gitlab:
image: gitlab/gitlab-ce:13.6.7-ce.0
container_name: gitlab
restarts: always
environment:
GITLAB_OMNIBUS_CONFIG:
external_url: 'http://node10:8010'
gitlab_rails['gitlab_shell_ssh_port'] = 2222
ports:
- '8929:8929'
- '2222:2222'
volumes:
- /opt/gitlab/gitlab-13.6.7-ce.0/etc:/etc/gitlab
- /opt/gitlab/gitlab-13.6.7-ce.0/data:/var/opt/gitlab
- /opt/gitlab/gitlab-13.6.7-ce.0/log:/var/log/gitlab
- 执行并启动
docker-compose up -d
- 初始密码
进入容器,查看文件/etc/gitlab/initial_root_password可以看到初始密码
总结
以上在Docker中部署GitLab的所有步骤,请大家安装版本时最好选择的版本与我保持一致,因为不同的版本可能会碰到一些意想不到的问题,避免踩坑。