Docker搭建Gitlab服务器
获取 Gitlab 镜像
1
| docker pull gitlab/gitlab-ce
|
启动容器
映射端口,配置访问方式
- 8443 https
- 8080 http
- 8022 ssh
挂载3个volume到容器里,分别用于配置,持久化,日志。
1 2 3 4 5 6 7 8 9 10
| docker run -dit \ -p 8443:443 \ -p 8080:80 \ -p 8022:22 \ --name gitlab \ --restart always \ -v /etc/gitlab/config:/etc/gitlab \ -v /var/log/gitlab/logs:/var/log/gitlab \ -v /var/opt/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce:latest
|
配置 Gitlab
进入容器修改配置文件
1 2
| docker exec -it gitlab /bin/bash vim /etc/gitlab/gitlab.rb
|
或者你可以直接修改宿主机的配置文件
1
| /etc/gitlab/config/gitlab.rb
|
然后进入容器重新加载配置
1 2
| docker exec -it gitlab /bin/bash gitlab-ctl reconfigure
|
gitlab.rb 配置文件
假如你有一个域名:gitlab.wudinaonao.com (这是我的域名)
增加内容
- external_url 设置
1 2 3 4 5 6
| # # 注意要有前缀,不能直接写域名,http或https # example # external_url "https://gitlab.wudinaonao.com" # external_url "https://gitlab.wudinaonao.com"
|
如果使用https的话记得配置nginx选项。具体参见nginx配置ssl
重载配置
反向代理到容器提供的8848端口
Nginx 配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| ...省略其他
location ~/ { # 如果代理到一个动态域名,这里需要设置解析DNS # 不然Nginx只在启动的时候解析一次 resolver 8.8.8.8 114.114.114.114 valid=10s; resolver_timeout 3s; # 假如你要代理到 127.0.0.1:8848 set $target "127.0.0.1:8848"; # 这里之前填写成 $proxy_host 导致代理失败 proxy_set_header Host $host; proxy_set_header X-Forwarder-For $remote_addr; proxy_ssl_certificate # 证书路径; proxy_ssl_certificate_key # 私钥路径; proxy_pass https: }
|
登录
![20200501235435]()
第一次登录需要设置root密码。
这里我已经设置好了。