version: "3.1" services: spring-app: build: context: spring-app dockerfile: Dockerfile ports: - 8080:8080 restart: unless-stopped prometheus: image: prom/prometheus container_name: prometheus command: - "--config.file=/etc/prometheus/prometheus.yml" ports: - 9090:9090 restart: unless-stopped volumes: - ./prometheus:/etc/prometheus - prom_data:/prometheus grafana: image: grafana/grafana container_name: grafana ports: - 3000:3000 restart: unless-stopped environment: - GF_SECURITY_ADMIN_USER=admin - GF_SECURITY_ADMIN_PASSWORD=grafana volumes: - ./grafana/datasource.yml:/etc/grafana/provisioning/datasources/datasource.yml - ./grafana/dashboard/dashboard.json:/var/lib/grafana/dashboards/dashboard.json - ./grafana/dashboard/dashboard.yaml:/etc/grafana/provisioning/dashboards/main.yaml volumes: prom_data: