本人使用的版本是15.10.0
1、搭建
docker run --detach \
--hostname xxx.com \ # 替换自己将来(web端,代码clone)想要被外界访问时使用的域名
--publish 4438:443 \
--publish 8880:80 \
--publish 222:22 \
--name gitlab \
--restart always \ # 设置重启容器自启
--privileged=true \ # 获取宿主机权限
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
2、配置
1、最主要的就是配置/etc/gitlab/gitlab.rb
2、因为上面的文件有很多注释,所以可以使用cat /etc/gitlab/gitlab.rb | grep -vE "#|^$"不看注释
3、另外使用vim或vi编辑时内容太多不容易找到位置可以按下面步骤
(注意:一般容器内都没有安装vi和vim,需要自行安装,安装步骤参考此处)
- 先进入编辑(不需要输入i进入编辑模式)vi /etc/gitlab/gitlab.rb
- 单击ESC,再按
/键,随后输入查找的内容,如/gitlab_rails,输入完后按回车键查找,按N键查找下一个
#外界访问时使用的域名,默认是http,这里设置为https,后面使用Nginx Proxy Manager 配置安全证书
external_url 'https://xxx.com'
#配置邮箱服务
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['smtp_pool'] = true
#上下两个账户保持相同即可
gitlab_rails['gitlab_email_from'] = 'xxx@qq.com'
#备份文件过期时间单位秒,这里换算后是7天,默认就是这个数值
gitlab_rails['backup_keep_time'] = 604800
#用于设置默认的 Git 用户名和电子邮件地址。
user['git_user_name'] = "xxx"
user['git_user_email'] = "xxx@qq.com"
#用于启用或禁用GitLab自带的 Let's Encrypt 证书的自动续订功能。因为我们自己使用NPM所以不需要GitLab自带的
letsencrypt['enable'] = false
3、配置数据备份(恢复数据时需要GitLab版本保持一致)
可以参考下面这个博主的文章
gitlab 本地 定时备份
为了安全起见将备份文件异地存储
gitlab 远程 定时备份
其中遇到一个问题下面cron命令中 -D 1不知道是什么作用(希望有懂的可以指教,按照上面这两篇文章弄下来实测是可以实现效果的,即从本地Docker部署的GitLab中首先实现本地备份,然后将备份文件上传到指定的远程服务器)
10 12 * * * /root/auto_backup_to_remote.sh -D 1
遇到的问题
1、GitLab Runner 触发速度不够快 2、新建几个项目后无法运行流水线