54 lines
2.0 KiB
YAML
54 lines
2.0 KiB
YAML
services:
|
|
<< service_name >>:
|
|
image: docker.io/library/nginx:1.30.0-alpine
|
|
<%- if traefik_enabled %>
|
|
networks:
|
|
<< traefik_network >>:
|
|
<%- endif %>
|
|
<%- if not traefik_enabled %>
|
|
ports:
|
|
- target: 80
|
|
published: << ports_http >>
|
|
protocol: tcp
|
|
mode: host
|
|
- target: 443
|
|
published: << ports_https >>
|
|
protocol: tcp
|
|
mode: host
|
|
<%- endif %>
|
|
# volumes:
|
|
# - ./config/default.conf:/etc/nginx/conf.d/default.conf:ro
|
|
# - ./data:/usr/share/nginx/html:ro
|
|
deploy:
|
|
mode: << swarm_placement_mode >>
|
|
<%- if swarm_placement_mode == 'replicated' %>
|
|
replicas: << swarm_replicas >>
|
|
<%- endif %>
|
|
<%- if swarm_placement_host %>
|
|
placement:
|
|
constraints:
|
|
- node.hostname == << swarm_placement_host >>
|
|
<%- endif %>
|
|
<%- if traefik_enabled %>
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.docker.network=<< traefik_network >>
|
|
- traefik.http.services.<< service_name >>-web.loadbalancer.server.port=80
|
|
- traefik.http.routers.<< service_name >>-web-http.rule=Host(`<< traefik_host >>.<< traefik_domain >>`)
|
|
- traefik.http.routers.<< service_name >>-web-http.entrypoints=<< traefik_entrypoint >>
|
|
- traefik.http.routers.<< service_name >>-web-http.service=<< service_name >>-web
|
|
<%- if traefik_tls_enabled %>
|
|
- traefik.http.routers.<< service_name >>-web-https.rule=Host(`<< traefik_host >>.<< traefik_domain >>`)
|
|
- traefik.http.routers.<< service_name >>-web-https.entrypoints=<< traefik_tls_entrypoint >>
|
|
- traefik.http.routers.<< service_name >>-web-https.tls=true
|
|
- traefik.http.routers.<< service_name >>-web-https.tls.certresolver=<< traefik_tls_certresolver >>
|
|
- traefik.http.routers.<< service_name >>-web-https.service=<< service_name >>-web
|
|
<%- endif %>
|
|
<%- endif %>
|
|
|
|
<%- if traefik_enabled %>
|
|
networks:
|
|
<< traefik_network >>:
|
|
external: true
|
|
<%- endif %>
|