Docker-Nginx-Proxy с использованием вне стека - PullRequest
0 голосов
/ 01 ноября 2018

Я использовал следующий docker-compose.yml для установки прокси-сервера nginx в среде docker.

version: "2"

services:
  nginx:
    image: nginx
    container_name: nginx
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - "/etc/nginx/conf.d"
      - "/etc/nginx/vhost.d"
      - "/usr/share/nginx/html"
      - "../../../volumes/proxy/certs:/etc/nginx/certs:ro"
    networks:
      - proxy-tier
  nginx-gen:
    image: jwilder/docker-gen
    container_name: nginx-gen
    volumes:
      - "/var/run/docker.sock:/tmp/docker.sock:ro"
      - "../../../volumes/proxy/templates/nginx-compose-v2.tmpl:/etc/docker-gen/templates/nginx.tmpl:ro"
    volumes_from:
      - nginx
    entrypoint: /usr/local/bin/docker-gen -notify-sighup nginx -watch -only-exposed -wait 5s:30s /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf
  letsencrypt-nginx-proxy-companion:
    image: jrcs/letsencrypt-nginx-proxy-companion
    container_name: letsencrypt-nginx-proxy-companion
    volumes_from:
      - nginx
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
      - "../../../volumes/proxy/certs:/etc/nginx/certs:rw"
    environment:
      - NGINX_DOCKER_GEN_CONTAINER=nginx-gen

networks:
  proxy-tier:
    external:
      name: nginx-proxy

Мне удалось установить приложения типа ghost и discourse, когда я добавил их в составной файл выше и добавил для контейнеров следующий синтаксис:

environment:
      - VIRTUAL_HOST=site.example.com
      - LETSENCRYPT_HOST=site.example.com
      - LETSENCRYPT_EMAIL=email@example.com
    networks:
      - proxy-tier

Итак, у меня был стек с letsencrypt-nginx-proxy, discourse и ghost. Теперь, когда я хочу добавить приложения, я не хочу каждый раз редактировать compose.yml, поэтому я попытался разделить его на несколько стеков. Мне не удалось установить стек для letsencrypt-nginx-proxy и стек для другого приложения.

Синтаксис, который я использовал для прокси-сервера, является первым compose-файлом в этом посте. Для тестирования я попытался установить nginx-веб-сервер со следующим синтаксисом:

version: "2"

services:
  nginx:
    image: nginx
    container_name: simple-site
    volumes:
      - "../../../volumes/examples/simple-site/conf.d/:/etc/nginx/conf.d"
    environment:
      - VIRTUAL_HOST=site.example.com
      - LETSENCRYPT_HOST=site.example.com
      - LETSENCRYPT_EMAIL=email@example.com
    networks:
      - proxy-tier

networks:
  proxy-tier:
    external:
      name: nginx-proxy

Мне не удалось связаться с веб-сервером. Можно ли создать nginx-прокси в своем стеке и использовать этот прокси для других стеков? Как мне отредактировать мои композитные файлы, чтобы добиться успеха?

...