compose.yaml.j2 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. services:
  2. {{ service_name | default('portainer') }}:
  3. container_name: {{ container_name | default('portainer') }}
  4. image: docker.io/portainer/portainer-ce:2.33.1-alpine
  5. environment:
  6. - TZ={{ container_timezone | default('UTC') }}
  7. {% if ports_enabled %}
  8. ports:
  9. - "{{ ports_http | default(9000) }}:9000"
  10. - "{{ ports_https | default(9443) }}:9443"
  11. - "{{ ports_edge | default(8000) }}:8000"
  12. {% endif %}
  13. volumes:
  14. - /run/docker.sock:/var/run/docker.sock
  15. - portainer-data:/data
  16. {% if network_enabled %}
  17. networks:
  18. - {{ network_name | default('bridge') }}
  19. {% endif %}
  20. {% if traefik_enabled %}
  21. labels:
  22. - traefik.enable=true
  23. - traefik.http.services.{{ service_name | default('portainer') }}.loadbalancer.server.port=9000
  24. - traefik.http.routers.{{ service_name | default('portainer') }}-http.service={{ service_name | default('portainer') }}
  25. - traefik.http.routers.{{ service_name | default('portainer') }}-http.rule=Host(`{{ traefik_host }}`)
  26. - traefik.http.routers.{{ service_name | default('portainer') }}-http.entrypoints={{ traefik_entrypoint | default('web') }}
  27. {% if traefik_tls_enabled %}
  28. - traefik.http.routers.{{ service_name | default('portainer') }}-https.service={{ service_name | default('portainer') }}
  29. - traefik.http.routers.{{ service_name | default('portainer') }}-https.rule=Host(`{{ traefik_host }}`)
  30. - traefik.http.routers.{{ service_name | default('portainer') }}-https.entrypoints={{ traefik_tls_entrypoint | default('websecure') }}
  31. - traefik.http.routers.{{ service_name | default('portainer') }}-https.tls=true
  32. - traefik.http.routers.{{ service_name | default('portainer') }}-https.tls.certresolver={{ traefik_tls_certresolver }}
  33. {% endif %}
  34. {% endif %}
  35. restart: {{ restart_policy | default('unless-stopped') }}
  36. volumes:
  37. portainer-data:
  38. driver: local
  39. {% if network_enabled %}
  40. networks:
  41. {{ network_name | default('bridge') }}:
  42. {% if network_external %}
  43. external: true
  44. {% endif %}
  45. {% endif %}