对于很多团队来说,公司内部项目希望放在公司内部环境中运行,基于这种需求,今天分享一下如何使用 Docker 快速搭建 Gitlab 服务器。
获取镜像
关于如何安装 Docker ,以及常用命令这里就不再做过多赘述
1 | docker pull gitlab/gitlab-ce:latest |
运行容器
在开始之前需要确定 80、443、22 端口是否被占用,如果前两个被占用了,可以考虑在现有服务器上进行反向代理。如果是 22号端口
被占用,那么建议修改系统的 SSHD
服务监听端口。这样当你使用 SSH 方式管理 Git 仓库时也比较方便,毕竟需要 SSH 到服务器的概率要比你提交代码的概率低的。
1 | docker run --detach \ |
将上面的 gitlab.example.com
替换成你自己的域名,如果需要 HTTPS
的话 external_url
选项中的 URL 就写成 https://gitlab.example.com/
,否则就用 http://gitlab.example.com/
。
上面的命令运行后如果你的域名解析没有问题的话,就可以打开浏览器正常访问了。
使用 HTTPS
自带 Let’s Encrypt
Gitlab 10.7 版本内置了 Let's Encrypt
,你只需要配置 /etc/gitlab/config/gitlab.rb
如下几个参数就可以,自动启用 HTTPS 了。
1 | letsencrypt['enable'] = true |
使配置生效
1 | docker exec -it gitlab /bin/bash # gitlab 替换成你运行容器时的 --name 的配置 |
如果先执行 gitlab-ctl reconfigure
命令,很有可能会报如下错误:1
2There was an error running gitlab-ctl reconfigure:
letsencrypt_certificate[gitlab.betterde.com] (letsencrypt::http_authorization line 3) had an error: RuntimeError: acme_certificate[staging] (/opt/gitlab/embedded/cookbooks/cache/cookbooks/letsencrypt/resources/certificate.rb line 20) had an error: RuntimeError: [gitlab.betterde.com] Validation failed for domain gitlab.betterde.com
如果一切正常,那么此时访问 https://gitlab.example.com
就能正常打开 Gitlab 的首页了。