获取GitLab的docker镜像
途径有二:
1)下载GitLab的docker镜像,再手动汉化
· 上docker官方仓库查看GitLab版本
地址:https://hub.docker.com/r/gitlab/gitlab-ce/
· 拉取镜像(好像不能直接下载zip包)
docker pull gitlab/gitlab-ce: 11.6.0-rc9.ce.0 #11.6.0-rc9.ce.0为Tag
2)下载GitLab的中文版镜像
·地址:https://github.com/beginor/docker-gitlab-ce
选择目标版本,下载zip包,传送到目的服务器,导入镜像
或者
直接拉取镜像:docker pull beginor/gitlab-ce:11.1.4-ce.0
到目前为止,gitlab镜像已经存在于目的服务器的docker里,可查看已存在镜像
docker images
运行镜像
- 通常会将 GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 便于日后升级, 因此请先准备这三个目录。
与正式库一致
mkdir -p /home/dgd/gitlab/config
mkdir -p /home/dgd/gitlab/log
mkdir -p /home/dgd/gitlab/data
- 运行GitLab镜像
docker run --name gitlab -d \ #命名生成的容器为gitlab,-d在后台运行
--hostname IP \ #设置容器的主机名,可作为用来访问服务器的URL地址,建议不设置,后面也有配置URL的步骤
-p 443:443 -p 10085:22 -p 8080:80 \
--restart always \
--volume /home/dgd/gitlab/config:/etc/gitlab \
--volume /home/dgd/gitlab/log:/var/log/gitlab \
--volume /home/dgd/gitlab/data:/var/opt/gitlab \
gitlab-11.1.4:11.1.4
#-p 用来指定docker容器映射宿主机的服务端口。80是web访问用的端口,22是ssh协议用的端口。设定通过访问服务器的8080端口可以登录GitLab网页,推拉代码则需要访问10085端口
#--volume –volume 用来指定挂载目录。将config配置目录、data数据目录、logs日志目录挂载到宿主机上,即宿主机的/home/dgd/gitlab/config下的文件,和进入容器,切换到目录/etc/gitlab下的文件,两者是一样的
# gitlab-11.1.4:11.1.4 应该是Repository:Tag
修改配置文件
修改配置文件gitlab.rb(宿主机上的路径为:/home/dgd/gitlab/config/gitlab.rb)里面的参数,建议在最后面直接添加,不然修改或者查看很麻烦
1)修改URL地址
# 配置http协议所使用的访问地址
external_url 'http://10.33.123.54'#写域名,就是用域名访问
# 配置ssh协议所使用的访问地址和端口 #设置拉取代码采取的地址和端口
gitlab_rails['gitlab_ssh_host'] = '10.33.123.54'
gitlab_rails['gitlab_shell_ssh_port'] = 10085
2)修改邮件配置
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
#说明用的邮箱是QQ企业邮箱
gitlab_rails['smtp_port'] = 465 #采用465端口,登录发信邮箱查看设置
gitlab_rails['smtp_user_name'] = "yinglin@digitalg"
gitlab_rails['smtp_password'] = "USEvfvvxd" #授权码,并非邮箱密码
gitlab_rails['smtp_domain'] = "exmail.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] =true
——————————————————
最好设置收信人,并且发件人和上面的账号要一致!!!,不然会发信会报错,试过了!我还想实际邮箱和外在邮箱不一样。。。
gitlab_rails['gitlab_email_from'] = 'yinglin@digitalg.cn'
user["git_user_email"] = "gitlab@example.com"
3)进入GitLab容器
docker exec -it gitlab /bin/bash
4)
更新配置 gitlab-ctl reconfigure
重启服务 gitlab-ctl restart
5) 测试邮件服务是否正常
gitlab-rails console
Notify.test_email("XXX@XXX.XX","title","gitlab").deliver_now
如果发信失败,根据错误码百度
6)exit 退出容器
至此,GitLab可以正常使用,GitLab汉化详见另外的文档
https://www.jianshu.com/p/f3cce3e362a4