Skip to content
Snippets Groups Projects
docker-compose.yml 2.53 KiB


version: "2.4"

services:
  
  app:

    build: .
    restart: always
    hostname: "{{ domain }}"
    ports:
      - "{{ api_port }}:5665"
    volumes:
      - "{{ basedir }}/data:/var/lib/icinga2"
      - "{{ basedir }}/etc/locale.gen:/etc/locale.gen"
      - "{{ basedir }}/etc/icinga:/etc/icinga2"
      - "{{ basedir }}/etc/icingaweb2:/etc/icingaweb2"
      - "{{ basedir }}/log/apache2:/var/log/apache2"
      - "{{ basedir }}/log/icinga2:/var/log/icinga2"
      - "{{ basedir }}/log/icingaweb2:/var/log/icingaweb2"
    depends_on:
      - db
      - graphite
    environment:
      TZ: "Europe/Berlin"
      APACHE2_HTTP: BOTH
      MYSQL_HOST: db
      MYSQL_ROOT_USER: "root"
      MYSQL_ROOT_PASSWORD: "{{ mysql_admin_pass }}"
      MYSQL_PASSWORD: "{{ mysql_user_pass }}"
      MYSQL_DATABASE: icinga
      MYSQL_USER: icinga
      DEFAULT_MYSQL_HOST: db
      DEFAULT_MYSQL_USER: icinga
      DEFAULT_MYSQL_PASS: "{{ mysql_user_pass }}"
      ICINGAWEB2_ADMIN_PASS: "{{ icinga_admin_pass }}"
      ICINGA2_FEATURE_GRAPHITE: 1
      ICINGA2_FEATURE_GRAPHITE_HOST: graphite
      ICINGA2_FEATURE_GRAPHITE_PORT: 2003
      ICINGA2_FEATURE_DIRECTOR: 0
    labels:
      - traefik.enable=true
      - traefik.http.routers.{{ servicename }}.rule=Host(`{{ domain }}`)
      - traefik.http.routers.{{ servicename }}.entrypoints=websecure
      - traefik.http.services.{{ servicename }}.loadbalancer.server.port=80      
    networks:
      - default
      - web

  db:

    image: mariadb:10.5.6
    restart: always
    ports:
      - "{{ int_ip4 }}:{{mysql_port}}:3306"
    volumes:
      - "{{ basedir }}/db:/var/lib/mysql"
    environment:
      MYSQL_ROOT_PASSWORD: "{{ mysql_admin_pass }}"
      MYSQL_PASSWORD: "{{ mysql_user_pass }}"
      MYSQL_DATABASE: icinga
      MYSQL_USER: icinga
    networks:
      - default
  
  graphite:
    
    image: graphiteapp/graphite-statsd:1.1.7-6
    restart: always