2025-04-26 22:08:04 +10:00

59 lines
1.7 KiB
YAML

services:
go-application:
build:
context: ./go-application
container_name: go-application
image: go-application
ports:
- "80:5000"
python-application:
build:
context: ./python-application
container_name: python-application
image: python-application
ports:
- "81:5000"
dotnet-application:
build:
context: ./dotnet-application
container_name: dotnet-application
image: dotnet-application
ports:
- "82:5000"
nodejs-application:
build:
context: ./nodejs-application
container_name: nodejs-application
image: nodejs-application
ports:
- "83:5000"
prometheus:
container_name: prometheus-svc
image: prom/prometheus:v3.3.0
ports:
- "9091:9090"
command: --config.file=/etc/prometheus/prometheus.yaml
volumes:
- ./prometheus.yaml:/etc/prometheus/prometheus.yaml
grafana:
image: grafana/grafana:11.6.1
ports:
- "3000:3000"
environment:
- GF_AUTH_BASIC_ENABLED=false
- GF_AUTH_ANONYMOUS_ENABLED=true
- GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
grafana-dashboards:
image: alpine:latest
depends_on:
- grafana
volumes:
- ./grafana-data:/grafana
command: >
/bin/sh -c "
apk add --no-cache curl
echo 'waiting for grafana'
sleep 5s
cd /grafana
curl --request POST http://grafana:3000/api/datasources --header 'Content-Type: application/json' -d @datasources.json
curl --request POST http://grafana:3000/api/dashboards/db --header 'Content-Type: application/json' -d @dashboard.json"