牧场主,公共子域和nginx
我在一些本地服务器上运行一个完整的CI堆栈,我尝试迁移到Rancher 。
- 首先,我使用docker-compose在一个节点上创build了以下configuration,这看起来完美无瑕(即,我可以通过外部公共子域分别访问每个元素)。
- jwilder / nginx的代理
- jrcs / letsencrypt-的nginx代理 – 伴侣:最新
- registry:2.6.2
- 牧场主/服务器:最新
- 现在,我想通过各自的外部公共子域从全新的牧场主堆栈访问一些元素。 例如, https : //gitlab.example.com,https://jenkins.example.com 。 不幸的是,这是行不通的。
实际上,当我在创build一个堆栈的时候上传了下面docker-compose.yml
文件,看起来好像不能和现有的堆栈进行连接,这个堆栈支持rancher本身,基本上我不能访问运行良好:
version: '2' services: gitlab: image: gitlab/gitlab-ce:latest labels: io.rancher.container.pull_image: always ports: - "27100:80" - "27143:443" - "27122:22" restart: always volumes: - /var/gitlab_volume/config:/etc/gitlab - /var/gitlab_volume/logs:/var/log/gitlab - /var/gitlab_volume/data:/var/opt/gitlab environment: VIRTUAL_HOST: "gitlab.example.com" VIRTUAL_PORT: 80 LETSENCRYPT_HOST: "gitlab.example.com" LETSENCRYPT_EMAIL: "admin@example.com"
什么是适当的方法?
有关信息,我已经检查过Rancher外部子域名,但在这个阶段,我想用我的nginx服务器作为负载均衡器。
这里最后的docker-compose.yml文件定义:
version: '2' services: gitlab: image: gitlab/gitlab-ce:latest network_mode: bridge labels: io.rancher.container.pull_image: always ports: - "27100:80" - "27143:443" - "27122:22" restart: always volumes: - /var/gitlab_volume/config:/etc/gitlab - /var/gitlab_volume/logs:/var/log/gitlab - /var/gitlab_volume/data:/var/opt/gitlab environment: VIRTUAL_HOST: "gitlab.example.com" VIRTUAL_PORT: 80 LETSENCRYPT_HOST: "gitlab.example.com" LETSENCRYPT_EMAIL: "admin@example.com"
我们只需要在每个容器定义上强制使用network_mode。