From 5e104596525144e531249d86473c6bb4b7004a77 Mon Sep 17 00:00:00 2001 From: sky121113 Date: Mon, 5 Jan 2026 19:40:25 +0800 Subject: [PATCH] td --- .gitea/workflows/deploy.yaml | 49 ++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 27 deletions(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 7e80ee7..30e2899 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -19,40 +19,35 @@ jobs: rm -rf ./* git clone -b demo http://server:3000/${{ gitea.repository }}.git . - - name: 2. Sync Files to Running Container - run: | - # A. 執行複製 + - name: 2. Sync Files & Environment + run: | + # 建立 .env cp .env.example .env sed -i "s|APP_KEY=.*|APP_KEY=${{ secrets.APP_KEY }}|g" .env - # B. 確保容器環境是最新的 - # --wait 會確保容器真的跑起來了才執行下一步 - docker compose -p koori-erp up -d --build --force-recreate --wait + + # 啟動環境 + docker compose -p koori-erp up -d --wait - # C. 執行精簡化複製 (關鍵優化!) - # 排除 .git, node_modules, vendor 這三大黑洞 - tar --exclude='.git' \ - --exclude='node_modules' \ - --exclude='vendor' \ - -cf - . | docker exec -i koori-erp-laravel.test-1 tar -xf - -C /var/www/html + # A. 同步檔案 (包含 .env) + tar --exclude='.git' --exclude='node_modules' --exclude='vendor' -cf - . | docker exec -i koori-erp-laravel tar -xf - -C /var/www/html - - name: 3. Refresh Backend (Only if needed) + - name: 3. Backend & Frontend Build run: | - # 執行 Composer (確保你有加新套件的話會抓到) - docker exec -w /var/www/html koori-erp-laravel.test-1 composer install --optimize-autoloader - # 同步資料庫欄位 (如果你有改 Migration 的話) - docker exec koori-erp-laravel.test-1 php artisan migrate --force + # 使用一個 exec 區塊跑完編譯,減少 SSH/Exec 連線開銷 + docker exec -w /var/www/html koori-erp-laravel sh -c " + composer install --optimize-autoloader && + npm install && + npm run build && + php artisan migrate --force && + php artisan optimize:clear + " - - name: 4. Build New React Assets + - name: 4. Final Permission Fix run: | - # 既然你改了前端,就要在容器內重新跑一次打包 - docker exec -w /var/www/html koori-erp-laravel.test-1 npm install - docker exec -w /var/www/html koori-erp-laravel.test-1 npm run build - - name: 5. Final Permission Fix - run: | - # 統一修正權限 - docker exec koori-erp-laravel.test-1 chown -R 1000:1000 /var/www/html - docker exec koori-erp-laravel.test-1 chmod -R 775 /var/www/html/storage /var/www/html/bootstrap/cache - - name: 6. Clear Old Cache + # 這裡用 1000:1000 是因為你 docker-compose 裡設定了 UID/GID + docker exec koori-erp-laravel chown -R 1000:1000 /var/www/html + docker exec koori-erp-laravel chmod -R 775 /var/www/html/storage + - name: 5. Clear Old Cache run: | docker restart koori-erp-laravel.test-1 # 讓 Laravel 重新讀取最新的路由與設定