| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- ---
- services:
- {{ service_name }}:
- image: docker.io/prom/prometheus:v3.9.1
- restart: {{ restart_policy }}
- command:
- - --config.file=/etc/prometheus/prometheus.yaml
- - --storage.tsdb.retention.time={{ metrics_retention_time }}
- {% if metrics_retention_size != '0' %}
- - --storage.tsdb.retention.size={{ metrics_retention_size }}
- {% endif %}
- {% if metrics_enable_remote_write %}
- - --web.enable-remote-write-receiver
- {% endif %}
- {% if traefik_enabled %}
- {% if traefik_tls_enabled %}
- - --web.external-url=https://{{ traefik_host }}.{{ traefik_domain }}
- {% else %}
- - --web.external-url=http://{{ traefik_host }}.{{ traefik_domain }}
- {% endif %}
- {% endif %}
- {% if not traefik_enabled %}
- ports:
- - "{{ ports_http }}:9090"
- {% endif %}
- volumes:
- - {{ service_name }}_data:/prometheus
- - ./config/prometheus.yaml:/etc/prometheus/prometheus.yaml:ro
- {% if traefik_enabled %}
- networks:
- {{ traefik_network }}:
- labels:
- - traefik.enable=true
- - traefik.docker.network={{ traefik_network }}
- - traefik.http.services.{{ service_name }}_web.loadBalancer.server.port=9090
- - traefik.http.routers.{{ service_name }}_http.service={{ service_name }}_web
- - traefik.http.routers.{{ service_name }}_http.rule=Host(`{{ traefik_host }}.{{ traefik_domain }}`)
- - traefik.http.routers.{{ service_name }}_http.entrypoints=web
- {% if traefik_tls_enabled %}
- - traefik.http.routers.{{ service_name }}_https.service={{ service_name }}_web
- - traefik.http.routers.{{ service_name }}_https.rule=Host(`{{ traefik_host }}.{{ traefik_domain }}`)
- - traefik.http.routers.{{ service_name }}_https.entrypoints=websecure
- - traefik.http.routers.{{ service_name }}_https.tls=true
- - traefik.http.routers.{{ service_name }}_https.tls.certresolver={{ traefik_tls_certresolver }}
- {% endif %}
- {% endif %}
- volumes:
- {{ service_name }}_data:
- driver: local
- {% if traefik_enabled %}
- networks:
- {{ traefik_network }}:
- external: true
- {% endif %}
|