version: '3.8' services: postgres: image: postgres:13-alpine volumes: - db:/var/lib/postgresql/data environment: POSTGRES_DB: db POSTGRES_PASSWORD: pass ports: - "5432:5432" shm_size: 256mb monitor: build: . env_file: - .env ports: - "3333:3333" volumes: - ./config.yml:/app/config.yml fix_block_timestamps: build: . entrypoint: ["./fix_block_timestamps"] env_file: - .env volumes: - ./config.yml:/app/config.yml reprocess_block_range: build: . entrypoint: [ "./reprocess_block_range" ] env_file: - .env volumes: - ./config.yml:/app/config.yml grafana: image: grafana/grafana:8.1.5 volumes: - ./grafana/provisioning:/etc/grafana/provisioning - ./grafana/dashboards:/etc/grafana/dashboards - grafana-storage:/var/lib/grafana environment: PG_HOST: 'postgres:5432' PG_USER: 'read_user' PG_PASSWORD: 'read_user_pass' PG_DB: 'db' PROM_USER: 'admin' PROM_HOST: 'http://prometheus:9090' ports: - "3000:3000" prometheus: image: prom/prometheus:v2.30.0 volumes: - ./prometheus:/etc/prometheus - prom-storage:/prometheus command: ["--config.file=/etc/prometheus/prometheus.yml", "--web.enable-lifecycle"] ports: - "9090:9090" alertmanager: image: prom/alertmanager:v0.23.0 command: ["--config.file=/etc/prometheus/alertmanager.yml", "--storage.path=/alertmanager", "--web.external-url=http://localhost:9093"] volumes: - ./prometheus:/etc/prometheus - alertmanager-storage:/alertmanager ports: - "9093:9093" volumes: db: grafana-storage: prom-storage: alertmanager-storage: