compose.yaml.j2 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. services:
  2. {{ service_name | default("alloy") }}:
  3. image: grafana/alloy:v1.11.0
  4. container_name: {{ container_name | default("alloy") }}
  5. hostname: {{ container_hostname }}
  6. command:
  7. - run
  8. - --server.http.listen-addr=0.0.0.0:{{ ports_main | default("12345") }}
  9. - --storage.path=/var/lib/alloy/data
  10. - /etc/alloy/config.alloy
  11. {% if ports_enabled %}
  12. ports:
  13. - "{{ ports_main | default("12345") }}:12345"
  14. {% endif %}
  15. volumes:
  16. - ./config/config.alloy:/etc/alloy/config.alloy
  17. - alloy_data:/var/lib/alloy/data
  18. {% if logs_enabled or metrics_enabled %}
  19. - /:/rootfs:ro
  20. - /sys:/sys:ro
  21. {% endif %}
  22. {% if logs_enabled and logs_system %}
  23. - /run:/run:ro
  24. - /var/log:/var/log:ro
  25. {% endif %}
  26. {% if (logs_enabled and logs_docker) or (metrics_enabled and metrics_docker) %}
  27. - /var/lib/docker/:/var/lib/docker/:ro
  28. {% endif %}
  29. {% if metrics_enabled and metrics_system %}
  30. - /run/udev/data:/run/udev/data:ro
  31. {% endif %}
  32. {% if network_enabled %}
  33. networks:
  34. - {{ network_name | default("bridge") }}
  35. {% endif %}
  36. {% if traefik_enabled %}
  37. labels:
  38. - traefik.enable=true
  39. - traefik.http.services.{{ service_name | default("alloy") }}.loadbalancer.server.port=12345
  40. - traefik.http.services.{{ service_name | default("alloy") }}.loadbalancer.server.scheme=http
  41. - traefik.http.routers.{{ service_name | default("alloy") }}-http.service={{ service_name | default("alloy") }}
  42. - traefik.http.routers.{{ service_name | default("alloy") }}-http.rule=Host(`{{ traefik_host }}`)
  43. - traefik.http.routers.{{ service_name | default("alloy") }}-http.entrypoints={{ traefik_entrypoint | default("web") }}
  44. {% if traefik_tls_enabled %}
  45. - traefik.http.routers.{{ service_name | default("alloy") }}-https.service={{ service_name | default("alloy") }}
  46. - traefik.http.routers.{{ service_name | default("alloy") }}-https.rule=Host(`{{ traefik_host }}`)
  47. - traefik.http.routers.{{ service_name | default("alloy") }}-https.entrypoints={{ traefik_tls_entrypoint | default("websecure") }}
  48. - traefik.http.routers.{{ service_name | default("alloy") }}-https.tls=true
  49. - traefik.http.routers.{{ service_name | default("alloy") }}-https.tls.certresolver={{ traefik_tls_certresolver }}
  50. {% endif %}
  51. {% endif %}
  52. restart: {{ restart_policy | default("unless-stopped") }}
  53. volumes:
  54. alloy_data:
  55. driver: local
  56. {% if network_enabled or traefik_enabled %}
  57. networks:
  58. {% if network_enabled %}
  59. {{ network_name | default("bridge") }}:
  60. {% if network_external %}
  61. external: true
  62. {% endif %}
  63. {% elif traefik_enabled %}
  64. {{ traefik_network | default("traefik") }}:
  65. external: true
  66. {% endif %}
  67. {% endif %}