services: db: image: docker.io/library/postgres:16 restart: unless-stopped environment: - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_DB=${POSTGRES_DB} ports: - "127.0.0.1:5432:5432" volumes: - loft_db_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres -d loft"] interval: 5s timeout: 5s retries: 5 app: image: loft restart: unless-stopped build: . ports: - "3000:3000" depends_on: db: condition: service_healthy environment: - DATABASE_URL=${DATABASE_URL} - STORAGE_PATH=${STORAGE_PATH} volumes: - loft_storage:${STORAGE_PATH} volumes: loft_db_data: loft_storage: