version: '3.9' services: lifeos-prod: build: context: . dockerfile: Dockerfile container_name: lifeos-prod restart: unless-stopped environment: DATABASE_URL: postgresql+asyncpg://postgres:${DB_PASSWORD}@lifeos-db:5432/lifeos_prod FILE_STORAGE_PATH: /opt/lifeos/files/prod ENVIRONMENT: production command: uvicorn main:app --host 0.0.0.0 --port 8002 --workers 1 ports: - "8002:8002" volumes: - /opt/lifeos/prod/files:/opt/lifeos/files/prod networks: - lifeos_network depends_on: - lifeos-db lifeos-dev: build: context: . dockerfile: Dockerfile container_name: lifeos-dev restart: unless-stopped environment: DATABASE_URL: postgresql+asyncpg://postgres:${DB_PASSWORD}@lifeos-db:5432/lifeos_dev FILE_STORAGE_PATH: /opt/lifeos/files/dev ENVIRONMENT: development command: uvicorn main:app --host 0.0.0.0 --port 8003 --workers 1 --reload ports: - "8003:8003" volumes: - /opt/lifeos/dev/files:/opt/lifeos/files/dev - .:/app # hot reload in dev networks: - lifeos_network depends_on: - lifeos-db networks: lifeos_network: external: true