gitHub.com Actions自动化发布

发布时间:2026/8/1 20:30:20
gitHub.com Actions自动化发布 步驟一準備伺服器環境生成SSH Keyssh-keygen -t rsa -b 4096 -C github-actions -f ~/.ssh/id_rsa -N 將公鑰寫入授權清單cat ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys查看公鑰Public Key公鑰是可以公開分享的通常用於添加到 GitHub、GitLab 或伺服器的授權列表中。執行以下命令即可查看cat ~/.ssh/id_rsa.pub查看私鑰Private Key私鑰是絕對保密的相當於你的「密碼」千萬不要泄露給任何人。它通常保存在本地用於證明你的身份。執行以下命令即可查看cat ~/.ssh/id_rsa步驟二配置 GitHub Repository Secrets安全密鑰為了不讓伺服器 IP 和 SSH 私鑰曝光在程式碼中我們將敏感資訊放在 GitHub 的 Secrets 裡開啟你的 GitHub 專案倉庫進入Settings-Secrets and variables-Actions。點擊New repository secret依序新增以下變數Secret 名稱填入內容SERVER_HOST你的伺服器 IP 位址SERVER_USER伺服器登入帳號通常為rootSERVER_SSH_KEY上一步生成的私鑰內容~/.ssh/id_rsa的完整文字包含 BEGIN/END headerSERVER_PORT伺服器的 SSH 埠號預設為22若寶塔有改過請填修改後的埠號步驟三在專案中編寫 Docker 設定檔在專案根目錄下準備好你的Dockerfile與docker-compose.ymldocker-compose.yml範例version: 3.8 services: web_app: build: . container_name: my_bt_app restart: always ports: - 8080:8080 # 將容器埠號映射到伺服器的 8080 environment: - NODE_ENVproduction步驟四編寫 GitHub Actions Workflow自動化腳本在專案根目錄下建立資料夾與檔案.github/workflows/deploy.yml內容如下name: Auto Deploy to BT Panel Docker # 當 main 分支有 git push 時觸發 on: push: branches: - main jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout repository code uses: actions/checkoutv4 - name: SSH and Deploy to Server uses: appleboy/ssh-actionv1.0.3 with: host: ${{ secrets.SERVER_HOST }} username: ${{ secrets.SERVER_USER }} key: ${{ secrets.SERVER_SSH_KEY }} port: ${{ secrets.SERVER_PORT }} script: | # 1. 切換到寶塔上的專案目錄 cd /www/wwwroot/my-app # 2. 拉取 GitHub 最新程式碼 git pull origin main # 3. 重新構建並啟動 Docker 容器 (背景執行) docker-compose up -d --build # 4. 清理無用的舊鏡像 (避免伺服器硬碟被塞爆) docker image prune -f測試與驗證完成了上述設定後只要你在本地修改程式碼並執行git add . git commit -m update app git push origin main