Rancher, публичные поддомены и nginx

Я запускал полный стек CI на некоторых локальных серверах, которые я пытаюсь перенести на Rancher.

  1. First, I have created the following configuration on one node with docker-compose that seems to runs perfectly (i.e., I can access to each elements separately via external public subdomains).
    • jwilder/nginx-proxy
    • jrcs / letsencrypt-nginx-proxy-companion: последний
    • реестр: 2.6.2
    • владелец ранчо / сервер: последний
  2. Теперь я хочу получить доступ к некоторым элементам из совершенно новых стеков владельцев ранчо через их соответствующие внешние общедоступные поддомены. Например, https://gitlab.example.com, https://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: "[email protected]"  

Каков подходящий подход?

Для информации я уже проверил внешние поддомены Rancher, но на данном этапе я хочу использовать свой сервер nginx как балансировщик нагрузки.


person Jack Admin    schedule 21.09.2017    source источник
comment
Проблема, связанная с тем, что одна композиция из стека будет запускаться jwilder/nginx-proxy в отдельной сети, а другая композиция будет выполняться в отдельной сети. Таким образом, вам также необходимо запустить gitlab в сети вашего существующего стека. У меня не установлено ранчо, чтобы дать вам конкретные инструкции, но если вы понимаете проблему, то вы бы знали, как ее исправить   -  person Tarun Lalwani    schedule 21.09.2017
comment
форсирование сетевого режима очень помогает! Я включил сетевой режим в обоих файлах docker-compose.yml. Большое спасибо!   -  person Jack Admin    schedule 21.09.2017
comment
Опубликуйте подробные шаги в качестве ответа и примите их   -  person Tarun Lalwani    schedule 21.09.2017


Ответы (1)


Вот окончательное определение файла 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: "[email protected]" 

Нам просто нужно принудительно установить network_mode для каждого определения контейнера.

person Jack Admin    schedule 21.09.2017