services: # 🐘 1. 你的 Laravel 後端服務 finance-backend: build: context: . dockerfile: Dockerfile container_name: finance-laravel-backend restart: always ports: - "8081:9000" environment: - APP_ENV=production - APP_DEBUG=false - DB_CONNECTION=pgsql - DB_HOST=finance-postgres # 🎯 關鍵:改用資料庫的服務名稱當作 Host! - DB_PORT=5432 - DB_DATABASE=myfinance - DB_USERNAME=myfinance_henry4682 - DB_PASSWORD=DwmQ78PB networks: - 1panel-network depends_on: - finance-postgres # 🎯 確保資料庫先開,後端才開 # 🐬 2. 直接在這裡把消失的 PostgreSQL 生回來! 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: