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/webdav ENVIRONMENT: production command: uvicorn main:app --host 0.0.0.0 --port 8002 --workers 1 ports: - "8002:8002" volumes: - /opt/lifeos/webdav:/opt/lifeos/webdav 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/webdav ENVIRONMENT: development command: uvicorn main:app --host 0.0.0.0 --port 8003 --workers 1 --reload ports: - "8003:8003" volumes: - /opt/lifeos/webdav:/opt/lifeos/webdav - .:/app # hot reload in dev networks: - lifeos_network depends_on: - lifeos-db networks: lifeos_network: external: true