services: postgres: image: postgres:16-alpine container_name: taskerbot-postgres environment: POSTGRES_USER: taskerbot POSTGRES_PASSWORD: password POSTGRES_DB: taskerbot ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U taskerbot"] interval: 5s timeout: 5s retries: 5 networks: - taskerbot-network redis: image: redis:7-alpine container_name: taskerbot-redis command: redis-server --maxmemory 256mb --maxmemory-policy allkeys-lru ports: - "6379:6379" volumes: - redis_data:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 5s retries: 5 networks: - taskerbot-network bot: build: context: . args: - CACHEBUST=${CACHEBUST:-1} image: t-tasker-bot:latest container_name: taskerbot-bot restart: unless-stopped env_file: - .env - .env.docker depends_on: postgres: condition: service_healthy redis: condition: service_healthy volumes: - ./logs:/app/logs networks: - taskerbot-network networks: taskerbot-network: driver: bridge volumes: postgres_data: redis_data: