compose.yaml.j2 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. services:
  2. {{ service_name | default("alloy") }}:
  3. image: grafana/alloy:v1.11.3
  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.docker.network={{ traefik_network | default("traefik") }}
  40. - traefik.http.services.{{ service_name | default("alloy") }}.loadbalancer.server.port=12345
  41. - traefik.http.services.{{ service_name | default("alloy") }}.loadbalancer.server.scheme=http
  42. - traefik.http.routers.{{ service_name | default("alloy") }}-http.service={{ service_name | default("alloy") }}
  43. - traefik.http.routers.{{ service_name | default("alloy") }}-http.rule=Host(`{{ traefik_host }}`)
  44. - traefik.http.routers.{{ service_name | default("alloy") }}-http.entrypoints={{ traefik_entrypoint | default("web") }}
  45. {% if traefik_tls_enabled %}
  46. - traefik.http.routers.{{ service_name | default("alloy") }}-https.service={{ service_name | default("alloy") }}
  47. - traefik.http.routers.{{ service_name | default("alloy") }}-https.rule=Host(`{{ traefik_host }}`)
  48. - traefik.http.routers.{{ service_name | default("alloy") }}-https.entrypoints={{ traefik_tls_entrypoint | default("websecure") }}
  49. - traefik.http.routers.{{ service_name | default("alloy") }}-https.tls=true
  50. - traefik.http.routers.{{ service_name | default("alloy") }}-https.tls.certresolver={{ traefik_tls_certresolver }}
  51. {% endif %}
  52. {% endif %}
  53. restart: {{ restart_policy | default("unless-stopped") }}
  54. volumes:
  55. alloy_data:
  56. driver: local
  57. {% if network_enabled or traefik_enabled %}
  58. networks:
  59. {% if network_enabled %}
  60. {{ network_name | default("bridge") }}:
  61. {% if network_external %}
  62. external: true
  63. {% endif %}
  64. {% elif traefik_enabled %}
  65. {{ traefik_network | default("traefik") }}:
  66. external: true
  67. {% endif %}
  68. {% endif %}