我有一个使用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)我将能够克隆存储库?
答案 0 :(得分:0)
应该处理ssh连接,而不是SSH守护进程的nginx。所以Gitlab docker也应该运行一个SSH守护进程,如果可用,它可以侦听端口2222.