name: travel_agent_bot version: "3" services: postgres: image: postgres:16.2-alpine container_name: travel_agent-postgres healthcheck: test: pg_isready -U postgres -h localhost interval: 5s timeout: 5s retries: 10 environment: POSTGRES_DB: ${POSTGRES_DB:-postgres} POSTGRES_USER: ${POSTGRES_USER:-postgres} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres} ports: - "${POSTGRES_PORT:-5432}:5432" volumes: - postgres_data:/var/lib/postgresql/data redis: image: redis:7.2-alpine container_name: travel_agent-redis healthcheck: test: ["CMD", "redis-cli", "--raw", "incr", "ping"] ports: - "${REDIS_PORT:-6379}:6379" volumes: - redis_data:/data app: build: . container_name: travel_agent-app depends_on: postgres: condition: service_healthy redis: condition: service_healthy environment: BOT_TOKEN: ${BOT_TOKEN} REDIS_URL: redis://redis:${REDIS_PORT:-6379}/ SQLALCHEMY_DATABASE_URI: postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@postgres:${POSTGRES_PORT:-5432}/${POSTGRES_DB:-postgres} OPENTRIPMAP_API_KEY: ${OPENTRIPMAP_API_KEY} OPENWEATHERMAP_API_KEY: ${OPENWEATHERMAP_API_KEY} entrypoint: ["bash", "-c"] command: ["alembic -c app/alembic.ini upgrade head && python -m app"] pgadmin: image: dpage/pgadmin4:8.4 container_name: travel_agent-pgadmin depends_on: postgres: condition: service_healthy environment: PGADMIN_DEFAULT_EMAIL: ${PGADMIN_EMAIL:-admin@mail.com} PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_PASSWORD:-admin} ports: - "${PGADMIN_PORT:-5050}:80" restart: always volumes: - pgadmin_data:/var/lib/pgadmin volumes: postgres_data: redis_data: pgadmin_data: