version: '3' volumes: grafana_data: {} prometheus_data: {} services: ct-test-srv: build: context: . dockerfile: docker/ct-test-srv/Dockerfile command: ct-test-srv -config /test/config/cttestsrv.json ports: # Log One - 4600:4600 # Log Two - 4601:4601 networks: ctnet: ipv4_address: 10.40.50.2 aliases: - log-one - log-two ct-woodpecker: build: context: . dockerfile: docker/ct-woodpecker/Dockerfile command: ct-woodpecker -config /test/config/ct-woodpecker.docker.json ports: # Prometheus metrics - 1971:1971 volumes: - .:/ct-woodpecker-src networks: ctnet: ipv4_address: 10.40.50.3 aliases: - woodpecker depends_on: - ct-test-srv - mysql mysql: image: percona/percona-server:8.0 volumes: # Mount the directory containing the schema; The schema will be run at # initialization time. - ./storage/mysql/:/docker-entrypoint-initdb.d networks: ctnet: ipv4_address: 10.40.50.7 environment: MYSQL_RANDOM_ROOT_PASSWORD: "yes" MYSQL_DATABASE: "woodpeckerdb" MYSQL_USER: "woody" MYSQL_PASSWORD: "dryocopus_pileatus" command: mysqld --bind-address=0.0.0.0 prometheus: image: prom/prometheus:v2.43.0 command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.path=/prometheus' - '--web.console.libraries=/usr/share/prometheus/console_libraries' - '--web.console.templates=/usr/share/prometheus/consoles' ports: # Prometheus UI - 9090:9090 volumes: - ./test/config/prometheus/:/etc/prometheus/ - prometheus_data:/prometheus depends_on: - ct-woodpecker - alertmanager networks: ctnet: ipv4_address: 10.40.50.4 alertmanager: image: prom/alertmanager command: - '--config.file=/etc/alertmanager/config.yml' - '--storage.path=/alertmanager' ports: # Alertmanager API - 9093:9093 volumes: - ./test/config/prometheus/alertmanager.yml:/etc/alertmanager/config.yml networks: ctnet: ipv4_address: 10.40.50.5 aliases: - alertmanager depends_on: # webhook alert target - ct-test-srv grafana: image: grafana/grafana:latest environment: - "GF_SECURITY_ADMIN_USER=woodpecker" - "GF_SECURITY_ADMIN_PASSWORD=woodpecker" - "GF_LOG_LEVEL=error" ports: # Grafana UI - 3000:3000 volumes: - ./test/config/grafana/provisioning/:/etc/grafana/provisioning/ - grafana_data:/var/lib/grafana networks: ctnet: ipv4_address: 10.40.50.6 aliases: - grafana depends_on: # Grafana pulls metrics from prometheus - prometheus networks: ctnet: driver: bridge ipam: driver: default config: - subnet: 10.40.50.0/24