获取镜像
1
   | docker pull gitlab/gitlab-ce:12.1.4-ce.0
   | 
 
官方Hub镜像网络会比较慢,可以使用dotCloud加速器
1
   | dao pull gitlab/gitlab-ce:12.1.4-ce.0
   | 
 
运行镜像
由于是docker镜像运行, 所以我们需要把gitlab的配置, 数据, 日志存到容器外面, 即将其挂载到宿主机。
先准备三个目录:
1 2 3
   | mkdir -p /Users/sino/Documents/luckymrwang/docker/gitlab/etc mkdir -p /Users/sino/Documents/luckymrwang/docker/gitlab/logs mkdir -p /Users/sino/Documents/luckymrwang/docker/gitlab/data
   | 
 
完整的运行命令如下:
1 2 3 4 5 6 7 8 9 10 11 12
   | docker run -d \     --hostname localhost.gitlab.com \  # 配置 /ect/hosts     -p 80:80 \     -p 443:443 \     -p 22:22 \     --name gitlab \     --restart unless-stopped \     -v /Users/sino/Documents/luckymrwang/docker/gitlab/etc:/etc/gitlab \     -v /Users/sino/Documents/luckymrwang/docker/gitlab/logs:/var/log/gitlab \     -v /Users/sino/Documents/luckymrwang/docker/gitlab/data:/var/opt/gitlab \     -v /etc/localtime:/etc/localtime:ro \  # 保持宿主机和容器时间同步     gitlab/gitlab-ce:12.1.4-ce.0
   | 
 
大约需要2分钟,然后运行 docker ps 看到状态显示为 ‘healthy’ 就代表已经启动了
配置gitlab
要能充分使用gitlab, 必须配置邮件发送功能, 修改配置文件 gitlab.rb (启动镜像后产生的文件), 配置邮箱:
1
   | vim /Users/sino/Documents/luckymrwang/docker/gitlab/etc/gitlab.rb
   | 
 
在文件的最后加上配置:
1 2 3 4 5 6 7 8 9 10
   | gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.qq.com" gitlab_rails['smtp_port'] = 465 gitlab_rails['smtp_user_name'] = "xxx@qq.com" gitlab_rails['smtp_password'] = "授权码" gitlab_rails['smtp_domain'] = "smtp.qq.com" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = true gitlab_rails['gitlab_email_from'] = 'xxx@qq.com'
   | 
 
进入容器:
1
   | docker exec -it gitlab /bin/bash
   | 
 
此时已经进入docker容器了, 容器中执行命令重新配置gitlab:
1
   | gitlab-ctl reconfigure            # 重新配置
   | 
 
现在可以测试邮件是否配置正确了, 同样容器中执行:
1 2
   | gitlab-rails console        # 进入邮件控制台, 稍等一会才能进入 Notify.test_email('xxx@qq.com', 'Message Subject', 'Message Body').deliver_now     # 发送测试邮件
   | 
 
现在邮件配置已经完成了, 需要配置项目路径 (如果你预留的gitlab映射端口是80的话, 到这里已经配置完了), 在宿主机中 (容器外面) 修改文件gitlab.yml, 如果host和port不对, 要改过来:
1
   | vim /Users/sino/Documents/luckymrwang/docker/gitlab/data/gitlab-rails/etc/gitlab.yml
   | 
 
改完之后在容器中重启gitlab就配置完成了。 注意: 此时不能再重新配置(gitlab-ctl reconfigure), 否则可能会改变刚修改的gitlab.yml文件
1
   | gitlab-ctl restart     # 重启gitlab
   | 
 
gitlab常用命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14
   | # 重新应用gitlab的配置 gitlab-ctl reconfigure   # 重启gitlab服务 gitlab-ctl restart   # 查看gitlab运行状态 gitlab-ctl status   #停止gitlab服务 gitlab-ctl stop   # 查看gitlab运行日志 gitlab-ctl tail
   |