外部 Nginx 與 Gitlab Docker Container 並存設定方法 - lyonwang/TechNotes GitHub Wiki

gitlab docker container 啟動指令

sudo docker run -d \
                -e GITLAB_OMNIBUS_CONFIG="external_url 'http://192.168.10.51:880/'; gitlab_rails['lfs_enabled'] = true;gitlab_rails['gitlab_shell_ssh_port'] = 822" \
                --ip 172.17.0.3 \
                --name gitlab \
                --restart always \
                -v /srv/gitlab/config:/etc/gitlab \
                -v /srv/gitlab/logs:/var/log/gitlab \
                -v /srv/gitlab/data:/var/opt/gitlab \
                gitlab/gitlab-ce:latest

更改 Gitlab Docker Container 內部 nginx 設定: /srv/gitlab/data//nginx/conf/gitlab-http.conf

...
server {
  listen *:880;
...

更改gitlab clone的external_url

更改/opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml (注意: 要設定成外部存取 IP 與 port, 2020-11-05 更新 ==> 不需要)

  # 1. GitLab app settings
  # ==========================

  ## GitLab settings
  gitlab:
    ## Web server settings (note: host is the FQDN, do not include http://)
    host: 192.168.10.51
    port: 880
    https: false

重啟 gitlab docker container

sudo docker rm -f gitlab
執行第一步 gitlab docker container

外部 /etc/nginx/nginx.conf (Gitlab Docker Container 內部 IP 172.17.0.3 port 880)

http {
...
    upstream 192.168.10.51 {
        server 172.17.0.3:880;
    }
...
}

外部 /etc/nginx/conf.d/

server {
    listen       880;  #我的gitlab一般使用880端口访问
    server_name  192.168.10.51;

    location / {
        root  html;
        index index.html index.htm;
        proxy_pass http://192.168.10.51; #这里与前面设置过的端口一致
    }
}

外部存取

http://192.168.10.51:880