infrastructure/nginx-proxy/docker-compose.yaml

59 lines
1.5 KiB
YAML

version: '2.1'
services:
nginx:
image: nginx
container_name: proxy_nginx
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- nginx_conf:/etc/nginx/conf.d
- certs:/etc/nginx/certs
- vhost:/etc/nginx/vhost.d
- html:/usr/share/nginx/html
- htpasswd:/etc/nginx/htpasswd
networks:
- webproxy
dockergen:
image: nginxproxy/docker-gen
container_name: dockergen
command: -notify-sighup nginx -watch -wait 5s:30s /etc/docker-gen/templates/nginx.tmpl
/etc/nginx/conf.d/default.conf
restart: unless-stopped
environment:
- ENABLE_IPV6=true
volumes_from:
- nginx
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
# - ./nginx.tmpl:/etc/docker-gen/templates/nginx.tmpl # use this for the file next to this file
- nginx_tmpl:/etc/docker-gen/templates/ # use this for a named volume containing the file
networks:
- webproxy
acme-companion:
image: nginxproxy/acme-companion
restart: unless-stopped
volumes_from:
- nginx
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- acme:/etc/acme.sh
environment:
- NGINX_DOCKER_GEN_CONTAINER=dockergen
# - ACME_CA_URI=https://acme-staging-v02.api.letsencrypt.org/directory # set this for staging environment from letsencrypt
volumes:
nginx_conf:
nginx_tmpl:
certs:
vhost:
html:
acme:
htpasswd:
networks:
webproxy:
name: webproxy