version: "3" services: backend: image: finance_app-finance-backend:latest container_name: finance-laravel-backend networks: - 1panel-network ports: - "8081:8000" environment: APP_ENV: production APP_DEBUG: "false" APP_URL: https://fin-buddy.duckdns.org DB_CONNECTION: pgsql DB_HOST: finance-laravel-backend-postgres DB_PORT: 5432 DB_DATABASE: myfinance DB_USERNAME: myfinance_henry4682 DB_PASSWORD: DwmQ78PB GOOGLE_REDIRECT_URI: https://fin-buddy.duckdns.org/auth/google/callback GOOGLE_CLIENT_ID: 909352259943-vr216oea79h706ru7imm4lfdftej8qe0.apps.googleusercontent.com GOOGLE_CLIENT_SECRET: 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 finance-postgres: image: postgres:15-alpine # 使用穩定的 15-alpine 版本 container_name: finance-laravel-backend-postgres restart: always ports: - "5433:5432" # 🎯 把 5432 暴露給實體主機,這樣你本機的 pgAdmin 就能連進來了! environment: - POSTGRES_DB=myfinance - POSTGRES_USER=myfinance_henry4682 - POSTGRES_PASSWORD=DwmQ78PB volumes: - finance_db_data:/var/lib/postgresql/data # 🎯 資料持久化,容器重啟資料也不會掉 networks: - 1panel-network networks: 1panel-network: external: true # 🎯 定義資料庫的儲存卷 volumes: finance_db_data: