| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- services:
- {{ service_name }}:
- image: docker.io/library/traefik:v3.2
- {% if not swarm_enabled %}
- container_name: {{ container_name }}
- {% endif %}
- {% if ports_enabled %}
- ports:
- - "80:80"
- - "443:443"
- {% if traefik_dashboard_enabled %}
- - "8080:8080" # Dashboard (don't use in production)
- {% endif %}
- {% endif %}
- volumes:
- - /var/run/docker.sock:/var/run/docker.sock:ro
- - ./config/:/etc/traefik/:ro
- - ./certs/:/var/traefik/certs/:rw
- {% if traefik_tls_enabled %}
- env_file:
- - ./.env.
- {% endif %}
- environment:
- - TZ={{ container_timezone }}
- {% if network_enabled %}
- networks:
- - {{ network_name }}
- {% endif %}
- {% if swarm_enabled %}
- {% if traefik_tls_enabled %}
- secrets:
- - {{ traefik_tls_acme_secret_name }}
- {% endif %}
- deploy:
- mode: {{ swarm_placement_mode }}
- {% if swarm_placement_mode == 'replicated' %}
- replicas: {{ swarm_replicas }}
- {% endif %}
- {% if swarm_placement_host %}
- placement:
- constraints:
- - {{ swarm_placement_host }}
- {% endif %}
- {% else %}
- restart: {{ restart_policy }}
- {% endif %}
- {% if swarm_enabled and traefik_tls_enabled %}
- secrets:
- {{ traefik_tls_acme_secret_name }}:
- external: true
- {% endif %}
- {% if network_enabled %}
- networks:
- {{ network_name }}:
- {% if network_external %}
- external: true
- {% else %}
- driver: bridge
- {% endif %}
- {% endif %}
|