services: db: image: postgres:16 environment: POSTGRES_USER: ypms POSTGRES_PASSWORD: ypms POSTGRES_DB: ypms TZ: UTC PGTZ: UTC volumes: - pg_data:/var/lib/postgresql/data ports: - "5433:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U ypms"] interval: 3s timeout: 3s retries: 20 app: build: . depends_on: db: condition: service_healthy environment: DATABASE_URL: postgresql+psycopg://ypms:ypms@db:5432/ypms JWT_SECRET: dev-secret-change-me JWT_ALG: HS256 ACCESS_TOKEN_TTL_MINUTES: 60 COLUMN_ENCRYPTION_KEY: dev-col-enc-key-change-me-32bytes-______ LOG_LEVEL: INFO ENV: dev ports: - "8000:8000" command: > sh -c "alembic upgrade head && python -m ypms.seed.run && uvicorn ypms.main:app --host 0.0.0.0 --port 8000 --reload" volumes: - ./src:/app/src - ./migrations:/app/migrations adminer: image: adminer:4 depends_on: - db ports: - "8081:8080" volumes: pg_data: