version: '3.9' services: api: container_name: evolution_api image: atendai/evolution-api:v2.1.1 restart: always ports: - "8080:8080" env_file: - .env environment: - DATABASE_CONNECTION_URI=postgresql://postgres:${POSTGRES_PASSWORD}@postgres:5432/evolution volumes: - evolution_instances:/evolution/instances - evolution_store:/evolution/store depends_on: postgres: condition: service_healthy redis: condition: service_healthy networks: - evolution-net expose: - "8080" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080"] interval: 30s timeout: 10s retries: 3 redis: image: redis:7 container_name: evolution_redis restart: always ports: - "6379:6379" command: redis-server --port 6379 --appendonly yes volumes: - evolution_redis:/data networks: - evolution-net healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 postgres: image: postgres:14 container_name: evolution_postgres restart: always ports: - "5432:5432" environment: POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: ${POSTGRES_DB} volumes: - evolution_postgres:/var/lib/postgresql/data networks: - evolution-net healthcheck: test: ["CMD", "pg_isready", "-U", "${POSTGRES_USER}"] interval: 10s timeout: 5s retries: 5 volumes: evolution_instances: evolution_store: evolution_redis: evolution_postgres: networks: evolution-net: driver: bridge