0

我正在尝试迁移到Rancher的一些本地服务器上运行完整的 CI 堆栈。

  1. 首先,我使用 docker-compose 在一个节点上创建了以下配置,似乎运行完美(即,我可以通过外部公共子域分别访问每个元素)。
    • jwilder/nginx-代理
    • jrcs/letsencrypt-nginx-proxy-companion:最新
    • 注册表:2.6.2
    • 牧场主/服务器:最新
  2. 现在,我想通过它们各自的外部公共子域访问全新的牧场主堆栈中的一些元素。例如, https://gitlab.example.comhttps://jenkins.example.com。不幸的是,它不起作用。

实际上,当我在创建堆栈时上传以下docker-compose.yml文件时,似乎无法与现有堆栈建立连接,即支持牧场主本身的堆栈,基本上,我无法访问运行良好的服务:

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 服务器作为负载均衡器。

4

1 回答 1

0

这里是最终的 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。

于 2017-09-21T12:45:01.363 回答