version: "3.9" services: api: build: apps/api/. ports: - "1338:80" volumes: - .:/usr/learnhouse environment: - LEARNHOUSE_COOKIE_DOMAIN=.localhost # This overrides the default config.yaml (optimized for docker container based development) - LEARNHOUSE_SQL_CONNECTION_STRING=postgresql://learnhouse:learnhouse@db:5432/learnhouse - LEARNHOUSE_REDIS_CONNECTION_STRING=redis://redis:6379/learnhouse - LEARNHOUSE_PORT=80 depends_on: db: condition: service_healthy redis: condition: service_healthy db: image: postgres:16-alpine restart: always ports: - "5432:5432" environment: - POSTGRES_USER=learnhouse - POSTGRES_PASSWORD=learnhouse - POSTGRES_DB=learnhouse healthcheck: test: ["CMD-SHELL", "pg_isready -U learnhouse"] interval: 5s timeout: 4s retries: 5 redis: image: redis:7.2.3 restart: always ports: - "6379:6379" healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 4s retries: 5