簡體   English   中英

docker-compose + nginx-proxy + letsencrypt-nginx-proxy-companion + gitlab-ce = SSH連接在git clone上失敗

[英]docker-compose + nginx-proxy + letsencrypt-nginx-proxy-companion + gitlab-ce = SSH Connection fail on git clone

我有一個使用Debian 9的VPS(OVH),我正在嘗試創建這樣的東西:

搬運工人

當我嘗試通過https連接時,一切都很好。 但是,當我嘗試通過SSH克隆存儲庫時,它失敗了。

這是我的docker-composer.yml文件:

version: '2'

services:

  nginx-proxy:
    image: jwilder/nginx-proxy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - "/etc/nginx/vhost.d"
      - "/usr/share/nginx/html"
      - "/var/run/docker.sock:/tmp/docker.sock:ro"
      - "/etc/nginx/certs"

  letsencrypt-nginx-proxy-companion:
    image: jrcs/letsencrypt-nginx-proxy-companion
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
    volumes_from:
      - "nginx-proxy"

  gitlab:
      image: 'gitlab/gitlab-ce'
      restart: always
      container_name: gitlab
      hostname: 'gitlab.example.com'
      environment:
        VIRTUAL_HOST: gitlab.example.com
        LETSENCRYPT_HOST: gitlab.example.com
        LETSENCRYPT_EMAIL: admin@example.com
        GITLAB_OMNIBUS_CONFIG: |
          external_url 'http://gitlab.example.com'

      volumes:
        - '/srv/gitlab/config:/etc/gitlab'
        - '/srv/gitlab/logs:/var/log/gitlab'
        - '/srv/gitlab/data:/var/opt/gitlab'

  gitlab-runner:
      image: gitlab/gitlab-runner
      container_name: gitlab-runner
      volumes:
        - /var/run/docker.sock:/var/run/docker.sock
        - ./conf:/etc/gitlab-runner
      restart: always

我想,我將無法通過端口22連接,所以我可能需要添加到Omnibus配置這一行:

gitlab_rails['gitlab_shell_ssh_port'] = 2222

不幸的是,當我嘗試將端口“2222:2222”添加到nginx-proxy和/或gitlab容器時,有信息,端口2222已經被使用。

什么是配置此堆棧的最佳方式,所以當我連接到VPS(example.com)時,我將連接到Debian,但是當gitlab(gitlab.example.com)我將能夠克隆存儲庫?

它不是應該處理ssh連接的nginx,而是一個SSH守護進程。 所以Gitlab docker也應該運行一個SSH守護進程,如果可用,它可以監聽端口2222。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM