Я использовал следующий 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-прокси в своем стеке и использовать этот прокси для других стеков?
Как мне отредактировать мои композитные файлы, чтобы добиться успеха?