[FIX] 用中間檔案取代 tar pipe,徹底避開 pipefail
改為先 tar -cf /tmp/deploy.tar,再 docker exec tar -xf < 檔案。 不使用 pipe = 不受 pipefail 影響。 || [ $? -le 1 ] 讓 tar exit 1 (warning) 通過,exit 2+ 才失敗。
This commit is contained in:
parent
99463a762e
commit
6603828ddc
@ -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 &&
|
||||
|
||||
Loading…
Reference in New Issue
Block a user