fix: use docker cp to inject source code into container (bypass volume mount issue)

This commit is contained in:
sky121113 2026-04-16 17:05:42 +08:00
parent 9775c59996
commit 3cacf9d80f

View File

@ -14,14 +14,17 @@ jobs:
- name: Step 1 - Build & Deploy Containers
run: |
# 機器人現在是以「容器模式」預設執行的,我需要確保它能操作宿主機 Docker
WWWGROUP=1000 WWWUSER=1000 docker compose -f compose.yaml build --no-cache
WWWGROUP=1000 WWWUSER=1000 docker compose -f compose.yaml up -d --wait
WWWGROUP=1000 WWWUSER=1000 docker compose -f compose.yaml up -d --build --wait
- name: Step 2 - Composer & NPM & Initialization
- name: Step 2 - Deploy Code
run: |
docker exec -u 1000:1000 -w /var/www/html star-cloud-laravel bash -c "
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin &&
# Runner 容器模式下volume mount 無法正確對應宿主機路徑
# 使用 docker cp 直接將程式碼注入容器(透過 Docker socket
docker cp . star-cloud-laravel:/var/www/html/
- name: Step 3 - Composer & NPM & Initialization
run: |
docker exec -u 1000:1000 -w /var/www/html star-cloud-laravel sh -c "
composer install --no-dev --optimize-autoloader --no-interaction &&
npm install &&
npm run build &&
@ -36,5 +39,5 @@ jobs:
"
docker exec star-cloud-laravel chmod -R 775 /var/www/html/storage /var/www/html/bootstrap/cache
- name: Step 3 - Cleanup
- name: Step 4 - Cleanup
run: docker image prune -f