Разделение jwilder/nginx на два отдельных контейнера: в шаблоне Go не установлен $CurrentContainer
Я пытаюсь разделить контейнер jwilder/nginx-proxy на контейнер nginx и docker-gen, как описано здесь: https://github.com/nginx-proxy/nginx-proxy
Это мой файл docker-compose для стека nginx:
version: '3.5'
services:
nginx:
image: nginx:latest
labels:
- "com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy"
volumes:
- certificates:/etc/nginx/certs
- nginx-vhost.d:/etc/nginx/vhost.d
- nginx-html:/usr/share/nginx/html
- nginx-conf.d:/etc/nginx/conf.d
docker-gen:
image: jwilder/docker-gen
labels:
- "com.github.jrcs.letsencrypt_nginx_proxy_companion.docker_gen"
volumes:
- certificates:/etc/nginx/certs
- nginx-vhost.d:/etc/nginx/vhost.d
- nginx-html:/usr/share/nginx/html
- nginx-conf.d:/etc/nginx/conf.d
- /etc/docker-gen/templates:/etc/docker-gen/templates
- /var/run/docker.sock:/tmp/docker.sock:ro
depends_on:
- nginx
command: "-notify-sighup nginx -watch -only-exposed /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf"
letsencrypt-companion:
image: jrcs/letsencrypt-nginx-proxy-companion
volumes:
- certificates:/etc/nginx/certs
- nginx-vhost.d:/etc/nginx/vhost.d
- nginx-html:/usr/share/nginx/html
- nginx-conf.d:/etc/nginx/conf.d
- /var/run/docker.sock:/var/run/docker.sock:ro
depends_on:
- nginx
volumes:
certificates:
nginx-vhost.d:
nginx-html:
nginx-conf.d:
networks:
default:
name: proxy-network
А это файл моего веб-контейнера:
version: '3.5'
services:
web:
image: web-image
restart: always
volumes:
- /config/.nginx:/etc/nginx/nginx.conf
environment:
- VIRTUAL_HOST=example.org
- LETSENCRYPT_HOST=example.org
- LETSENCRYPT_EMAIL=example@example.org
networks:
- default
- proxy-network
networks:
default:
external:
name: web-network
proxy-network:
external:
name: proxy-network
К сожалению, файл конфигурации, созданный docker-gen из nginx.tmpl, не заполняет upstream
часть, поэтому адрес не добавляется:
# example.org
upstream example.org {
}
Я немного отладил шаблон и обнаружил, что $CurrentContainer
не установлен, поэтому я предполагаю, что мой веб-контейнер не может быть найден. Я проверил, что все контейнеры находятся в вышеупомянутых сетях иdocker ps
дал мне 80/tcp
в разделе портов, так что есть открытый порт.
В настоящее время мы используем образ jwilder/nginx-proxy, который работает нормально, поэтому я предполагаю, что моя конфигурация docker-compose где-то неверна. Какие-либо предложения?