version: "3.8" services: postgres: image: docker.io/konradkleine/copr-monitoring-postgres:latest build: context: ./postgres container_name: postgres-container restart: unless-stopped ports: - "5433:5432" healthcheck: test: ["CMD", "pg_isready", "--username=postgres"] interval: 10s timeout: 1s retries: 3 start_period: 1s volumes: # - "./postgres/data:/var/lib/postgresql/data:Z" - "./postgres/config:/etc/postgresql/config:Z" - "./postgres/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d:Z" command: - "-c" - "config_file=/etc/postgresql/config/postgresql.conf" networks: - postgres-net environment: POSTGRES_PASSWORD_FILE: "/run/secrets/secret_postgres_password" POSTGRES_USER: postgres # PGDATA: /var/lib/postgresql/data/pgdata secrets: - secret_postgres_password adminer: image: docker.io/library/adminer:latest container_name: adminer-container restart: unless-stopped environment: ADMINER_DEFAULT_SERVER: postgres ADMINER_DESIGN: nette depends_on: postgres: condition: service_healthy networks: - postgres-net ports: - "8080:8080" grafana: image: docker.io/konradkleine/copr-monitoring-grafana container_name: grafana-container build: context: ./grafana args: - "GRAFANA_VERSION=9.0.5" # https://grafana.com/docs/grafana/next/setup-grafana/installation/docker/#build-with-grafana-image-renderer-plugin-pre-installed - "GF_INSTALL_IMAGE_RENDERER_PLUGIN=true" - "GF_INSTALL_PLUGINS=grafana-github-datasource 1.0.15,marcusolsson-treemap-panel 2.0.0,pgillich-tree-panel 0.1.9,snuids-trafficlights-panel 1.5.1,fifemon-graphql-datasource 1.3.0,grafana-piechart-panel 1.6.2,grafana-clock-panel 2.1.0,grafana-worldmap-panel 0.3.3,digiapulssi-breadcrumb-panel 1.1.7,digiapulssi-organisations-panel 1.3.1,grafana-clock-panel 2.1.0,grafana-simple-json-datasource 1.4.2" environment: GF_SECURITY_ADMIN_PASSWORD__FILE: /run/secrets/secret_grafana_admin_password GF_DATABASE_PASSWORD__FILE: /run/secrets/secret_grafanawriter_password volumes: - "./grafana/etc/grafana/grafana.ini:/etc/grafana/grafana.ini:Z" - "./grafana/etc/grafana/provisioning/datasources:/etc/grafana/provisioning/datasources:Z" - "./grafana/etc/grafana/provisioning/dashboards:/etc/grafana/provisioning/dashboards:Z" - "./grafana/var/lib/grafana/dashboards:/var/lib/grafana/dashboards:Z" secrets: - secret_grafanareader_password - secret_grafanawriter_password - secret_grafana_admin_password restart: unless-stopped depends_on: postgres: condition: service_healthy networks: - postgres-net ports: - "3000:3000" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3000/api/health"] interval: 1s timeout: 3s retries: 60 networks: postgres-net: driver: bridge # See "make secrets" for how the secrets are generated secrets: secret_grafana_admin_password: external: true secret_grafanareader_password: external: true secret_grafanawriter_password: external: true secret_postgres_password: external: true secret_logwriter_password: external: true