我们希望在服务器上运行两个gitlab实例。由于遗留原因,将保留一个,对于新项目,将保留一个新的。
使用docker,我们能够启动gitlab的第一个旧实例。这是我们的docker-compose.yml减去我们的env变量和主机名。
version: '3.7'
services:
gitlab:
container_name: 'gitlab_legacy'
image: 'gitlab/gitlab-ce:latest'
restart: 'always'
ports:
- '80:80'
- '443:443'
- '22:22'
volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'
networks:
default:
external:
name: nginx-proxy
我的网络知识是有限的,但我知道这显然不适用于第二种情况,因为端口已经在使用中。将发生以下错误。
Bind for 0.0.0.0:80 failed: port is already allocated
Bind for 0.0.0.0:443 failed: port is already allocated
Bind for 0.0.0.0:22 failed: port is already allocated
所以我的问题是,桥接第二个gitlab dockerized容器或任何将来需要绑定到相同端口的容器的最佳解决方案是什么?
您应按照this link中的说明使用nginx rever代理>
然后在您的docker-compose文件中,端口部分将按照说明进行更改。例如:
ports: - '7080:80' - '7443:443' - '7022:22'
第二个实例:
ports:
- '8080:80'
- '8443:443'
- '8022:22'