1.下gitlab镜像

docker pull beginor/gitlab-ce:11.0.1-ce.0

2.通常会将 GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 便于日后升级, 因此请先准备这三个目录。

mkdir -p /mnt/gitlab/etc
mkdir -p /mnt/gitlab/log
mkdir -p /mnt/gitlab/data

3.启动gitlab容器

docker run -d -p 8443:443 -p 8490:80 --name gitlab --restart=always -v /mnt/gitlab/etc:/etc/gitlab -v /mnt/gitlab/log:/var/log/gitlab -v /mnt/gitlab/data:/var/opt/gitlab beginor/gitlab-ce:11.0.1-ce.0

4.启动报错docker: invalid restart policy unless-stopped.

原来这台服务器的docker版本较老,而unless-stopped这个是在1.9.0版本才加入的,所以对于旧版的docker环境需要改成always

docker支持如下restart策略:
no – 容器退出时不要自动重启。这个是默认值。
on-failure[:max-retries] – 只在容器以非0状态码退出时重启。可选的,可以退出docker daemon尝试重启容器的次数。
always – 不管退出状态码是什么始终重启容器。当指定always时,docker daemon将无限次数地重启容器。容器也会在daemon启动时尝试重启,不管容器当时的状态如何。
unless-stopped – 不管退出状态码是什么始终重启容器,不过当daemon启动时,如果容器之前已经为停止状态,不要尝试启动它。

5.配置GitLab主机名

把external_url改成部署机器的域名或者IP地址

5.1.修改/mnt/gitlab/etc/gitlab.rb

vim /mnt/gitlab/etc/gitlab.rb

# external_url 'GENERATED_EXTERNAL_URL'
external_url 'http://192.168.107.216' # 部署服务的ip

5.2修改/mnt/gitlab/data/gitlab-rails/etc/gitlab.yml

vim /mnt/gitlab/data/gitlab-rails/etc/gitlab.yml

gitlab:
#将host的值改成映射的外部主机ip地址和端口,这里会显示在gitlab克隆地址
host: 192.168.107.216
port: 8490
https: false

5.3.修改Gitlab数据存储路径(这里不做)

vim /mnt/gitlab/etc/gitlab.rb

git_data_dirs({ "default" => { "path" => "/data/gitlabData" } })

6.配置并启动GitLab

因为是容器,所以要进入到gitlab容器中执行命令
docker exec -ti gitlab /bin/bash

gitlab-ctl reconfigure # 重新应用gitlab的配置
gitlab-ctl restart # 重启gitlab服务
gitlab-ctl status # 查看gitlab运行状态

7.登陆

打开浏览器,输入本机的ip地址并登陆
http://192.168.107.216:8490 #  默认帐户的用户名是root,第一次访问时,将被重定向到密码重置屏幕,登录后,您可以更改用户名。

8.常用的几个Gitlab命令

# 重新应用gitlab的配置
gitlab-ctl reconfigure

# 重启gitlab服务
gitlab-ctl restart

# 查看gitlab运行状态
gitlab-ctl status

#停止gitlab服务
gitlab-ctl stop

# 查看gitlab运行日志
gitlab-ctl tail

# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sideki