Использование letsencrypt-nginx-proxy-companion в многодоменном многодоменном docker-compose.yml - PullRequest
0 голосов
/ 08 февраля 2019

Я хочу обслуживать 5 разных веб-сайтов, каждый из которых имеет свой собственный образ докера на dockerhub, и я хочу обслужить их всех одним файлом docker-compose.yml.Я использую следующие инструменты: - nginx-proxy - letsencrypt-nginx-proxy-companion

И я хочу 1. Использовать docker-compose и nginx-proxy для обслуживания всех сайтов - каждый с уникальным доменным именем 2. Используйте docker-compose и letsencrypt-nginx-proxy-companion

Мне удалосьуспешно завершите шаг # 1 с помощью этого docker-compose.yml:

version: '2'

services:
  nginx-proxy:
    image: jwilder/nginx-proxy
    ports:
      - "80:80"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro

  changed-site1:
    image: changed-user/changed-site1:v0.1.0
    environment:
      - VIRTUAL_HOST=changed-site1.com
  changed-site2:
    image: changed-user/changed-site2:v0.1.0
    environment:
      - VIRTUAL_HOST=changed-site2.com
  changed-site3:
    image: changed-user/changed-site3:v0.1.0
    environment:
      - VIRTUAL_HOST=changed-site3.com
  changed-site4:
    image: changed-user/changed-site4:v0.1.0
    environment:
      - VIRTUAL_HOST=api.changed-site4.com
  changed-site5:
    image: changed-user/changed-site5:v0.1.0
    environment:
      - VIRTUAL_HOST=changed-site5.com

, когда я запускаю 'docker-compose up', все работает хорошо, но нет SSL.

Я сейчаспытаясь выполнить шаг № 2, и каждый из моих сайтов выдает ошибку 502.И SSL не работает ни на одном из них.Вот как выглядит мой файл docker-compose.yml:

version: '2'

services:
  nginx-proxy:
    image: jwilder/nginx-proxy
    container_name: nginx-proxy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - conf:/etc/nginx/conf.d
      - vhost:/etc/nginx/vhost.d
      - html:/usr/share/nginx/html
      - dhparam:/etc/nginx/dhparam
      - certs:/etc/nginx/certs:ro
      - /var/run/docker.sock:/tmp/docker.sock:ro
    network_mode: bridge

  letsencrypt:
    image: jrcs/letsencrypt-nginx-proxy-companion
    container_name: nginx-proxy-le
    volumes_from:
      - nginx-proxy

    volumes:
      - certs:/etc/nginx/certs:rw
      - /var/run/docker.sock:/var/run/docker.sock:ro
    network_mode: bridge

    changed-site1:
      image: changed-user/changed-site1:v0.1.0
      environment:
        - VIRTUAL_HOST=changed-site1.com
    changed-site2:
      image: changed-user/changed-site2:v0.1.0
      environment:
        - VIRTUAL_HOST=changed-site2.com
    changed-site3:
      image: changed-user/changed-site3:v0.1.0
      environment:
        - VIRTUAL_HOST=changed-site3.com
    changed-site4:
      image: changed-user/changed-site4:v0.1.0
      environment:
        - VIRTUAL_HOST=api.changed-site4.com
    changed-site5:
      image: changed-user/changed-site5:v0.1.0
      environment:
        - VIRTUAL_HOST=changed-site5.com

Любая идея, что я сделал не так во втором файле docker-compose.yml (первый работал).

1 Ответ

0 голосов
/ 10 мая 2019

Я думаю, что в первую очередь ваш измененный сайт *: имеет глубокий отступ.Они должны иметь тот же отступ, что и letsencrypt: container.

Во-вторых, если вы хотите использовать прокси-компаньон nginx, вы должны предоставить для каждого контейнера также LETSENCRYPT_HOST в качестве переменной среды, что также объясняется на его github.(https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion)

Надеюсь, это поможет.

С уважением!

...