1. 將 twsystem1003 加入 docker 群組,移除腳本中的 sudo 需求。 2. 在 docker exec 指令中加入 -u 1001:1001,避免產生 root 權限的編譯檔案導致 rsync 同步失敗。
44 lines
1.7 KiB
YAML
44 lines
1.7 KiB
YAML
name: star-cloud-deploy-production
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main # 或是正式環境分支
|
|
|
|
jobs:
|
|
deploy-production:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Install SSH Key
|
|
uses: shimataro/ssh-key-action@v2
|
|
with:
|
|
key: ${{ secrets.PROD_SSH_PRIVATE_KEY }}
|
|
known_hosts: ${{ secrets.PROD_KNOWN_HOSTS }}
|
|
|
|
- name: Step 1 - Sync Code to Server
|
|
run: |
|
|
rsync -avz --delete \
|
|
--exclude='.git' \
|
|
--exclude='node_modules' \
|
|
--exclude='vendor' \
|
|
--exclude='storage' \
|
|
--exclude='bootstrap/cache' \
|
|
./ twsystem1003@34.84.169.132:~/star-cloud/
|
|
|
|
- name: Step 2 - Execute Remote Deployment Commands
|
|
run: |
|
|
ssh twsystem1003@34.84.169.132 "cd ~/star-cloud && \
|
|
WWWGROUP=1001 WWWUSER=1001 docker compose up -d --build && \
|
|
docker exec -u 1001:1001 star-cloud-laravel composer install --no-dev --optimize-autoloader && \
|
|
docker exec -u 1001:1001 star-cloud-laravel npm install && \
|
|
docker exec -u 1001:1001 star-cloud-laravel npm run build && \
|
|
docker exec -u 1001:1001 star-cloud-laravel php artisan migrate --force && \
|
|
docker exec -u 1001:1001 star-cloud-laravel php artisan optimize:clear && \
|
|
docker exec -u 1001:1001 star-cloud-laravel php artisan optimize && \
|
|
docker exec -u 1001:1001 star-cloud-laravel php artisan db:seed --class=RoleSeeder --force && \
|
|
docker exec -u 1001:1001 star-cloud-laravel php artisan db:seed --class=AdminUserSeeder --force && \
|
|
docker restart star-cloud-mqtt-worker"
|