services: db: image: postgres:16-alpine environment: POSTGRES_USER: ${DB_USER:-postgres} POSTGRES_PASSWORD: ${DB_PASSWORD:-postgres} POSTGRES_DB: ${DB_NAME:-tg_poster} ports: - "${DB_PORT:-5432}:5432" volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"] interval: 5s timeout: 5s retries: 10 bot: build: . depends_on: db: condition: service_healthy env_file: .env restart: unless-stopped volumes: - .:/app redis: image: redis:7-alpine command: ["redis-server","--save","", "--appendonly","no"] healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 5s retries: 10 ports: - "${REDIS_PORT:-6379}:6379" prometheus: image: prom/prometheus:v2.55.1 command: ["--config.file=/etc/prometheus/prometheus.yml"] volumes: - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro depends_on: - bot ports: - "9090:9090" volumes: pgdata: