fix: change dockerfile
Some checks failed
Laravel-Oracle-Deploy / redeploy (push) Failing after 54s

This commit is contained in:
2026-06-25 18:38:37 +08:00
parent 1b801131d2
commit ceabb9c0a2
2 changed files with 38 additions and 12 deletions

View File

@@ -1,6 +1,6 @@
FROM php:8.2-fpm
# 1. 安裝系統必要的擴充套件Laravel 需要 zip, unzip 等才能解壓套件
# 1. 安裝系統套件(這層幾乎不變,永遠快取
RUN apt-get update && apt-get install -y \
git \
curl \
@@ -11,20 +11,23 @@ RUN apt-get update && apt-get install -y \
unzip \
&& docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd
# 🎯 2. 從官方 Composer 鏡像中,直接把 composer 執行檔複製進來
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
# 3. 設定工作目錄
WORKDIR /var/www
# 4. 把專案檔案複製進去
# 🎯 2. 【核心魔法】只複製套件清單檔案
COPY composer.json composer.lock /var/www/
# 🎯 3. 在這裡就先執行安裝!
# 因為上面只複製了 json/lock只要你沒裝新套件這層 Docker 就會直接跳過、秒速套用快取!
RUN composer install --no-interaction --no-scripts --no-autoloader --no-dev
# 4. 最後才複製你天天在修改的 Laravel 原始碼(如 Controller、Routes
COPY . /var/www
# 🎯 5. 在容器內直接執行 composer install把 vendor 長出來!
# 加上 --no-dev 是因為生產環境不需要測試套件,速度會快非常多
RUN composer install --no-interaction --optimize-autoloader --no-dev
# 5. 補上自動載入優化
RUN composer dump-autoload --optimize --no-dev
EXPOSE 9000
# 6. 啟動 Laravel HTTP 伺服器
CMD ["php", "/var/www/artisan", "serve", "--host=0.0.0.0", "--port=9000"]

View File

@@ -1,4 +1,5 @@
services:
# 🐘 1. 你的 Laravel 後端服務
finance-backend:
build:
context: .
@@ -11,14 +12,36 @@ services:
- APP_ENV=production
- APP_DEBUG=false
- DB_CONNECTION=pgsql
- DB_HOST=161.118.239.140
- DB_HOST=finance-postgres # 🎯 關鍵:改用資料庫的服務名稱當作 Host
- DB_PORT=5432
- DB_DATABASE=myfinance
- DB_USERNAME=myfinance_henry4682
- DB_PASSWORD=DwmQ78PB
networks:
- 1panel-network # 🎯 這裡的名字必須跟最下面一模一樣
- 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:
- "5432: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
1panel-network:
external: true
# 🎯 定義資料庫的儲存卷
volumes:
finance_db_data: