From 6603828ddce502ad718e5e2f48c4aa6d1ab42852 Mon Sep 17 00:00:00 2001 From: sky121113 Date: Tue, 21 Apr 2026 17:02:07 +0800 Subject: [PATCH] =?UTF-8?q?[FIX]=20=E7=94=A8=E4=B8=AD=E9=96=93=E6=AA=94?= =?UTF-8?q?=E6=A1=88=E5=8F=96=E4=BB=A3=20tar=20pipe=EF=BC=8C=E5=BE=B9?= =?UTF-8?q?=E5=BA=95=E9=81=BF=E9=96=8B=20pipefail?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 改為先 tar -cf /tmp/deploy.tar,再 docker exec tar -xf < 檔案。 不使用 pipe = 不受 pipefail 影響。 || [ $? -le 1 ] 讓 tar exit 1 (warning) 通過,exit 2+ 才失敗。 --- .gitea/workflows/deploy-demo.yaml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/deploy-demo.yaml b/.gitea/workflows/deploy-demo.yaml index a37face..7f57b12 100644 --- a/.gitea/workflows/deploy-demo.yaml +++ b/.gitea/workflows/deploy-demo.yaml @@ -42,13 +42,16 @@ jobs: - name: Step 2 - Deploy Code run: | echo ">>> Syncing code to star-cloud-laravel..." - # --warning=no-file-changed: 抑制 "file changed as we read it" 警告並維持 exit 0 - # 三個容器 (laravel, queue, mqtt-worker) 共享同一份 volume (.:/var/www/html),只需同步一次 - tar --warning=no-file-changed \ - --exclude='.git' --exclude='node_modules' --exclude='vendor' \ + # 1. 打包:|| [ $? -le 1 ] 讓 exit 1 (file changed 警告) 通過,exit 2+ 才視為錯誤 + tar --exclude='.git' --exclude='node_modules' --exclude='vendor' \ --exclude='storage' --exclude='bootstrap/cache' \ - -cf - . | docker exec -i star-cloud-laravel tar -xf - -C /var/www/html/ + -cf /tmp/deploy.tar . || [ $? -le 1 ] + # 2. 解壓至容器 (三個容器共享 volume,同步一次即可) + docker exec -i star-cloud-laravel tar -xf - -C /var/www/html/ < /tmp/deploy.tar + rm -f /tmp/deploy.tar + + # 3. 設定權限 docker exec star-cloud-laravel sh -c " chown -R 1000:1000 /var/www/html && mkdir -p /.npm && chown -R 1000:1000 /.npm &&