在Linux上使用Node.js實現自動化部署可以通過多種方式來完成,以下是一個基本的步驟指南,涵蓋了從代碼準備到部署的全過程:
安裝Node.js和npm:確保你的Linux系統上已經安裝了Node.js和npm。你可以使用以下命令來安裝:
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
設置項目目錄:創建一個新的項目目錄并進入該目錄。
mkdir my-node-app
cd my-node-app
初始化Node.js項目:使用npm初始化一個新的Node.js項目。
npm init -y
在項目目錄中編寫你的Node.js應用程序。例如,創建一個簡單的app.js
文件:
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(port, () => {
console.log(`App listening at http://localhost:${port}`);
});
如果你還沒有使用Git進行版本控制,可以初始化一個Git倉庫并添加遠程倉庫地址。
git init
git add .
git commit -m "Initial commit"
git remote add origin <your-repository-url>
你可以使用多種CI/CD工具來實現自動化部署,例如Jenkins、GitLab CI、GitHub Actions等。這里以GitHub Actions為例。
在項目根目錄下創建一個.github/workflows
目錄,并在其中創建一個YAML文件(例如deploy.yml
):
name: Deploy Node.js App
on:
push:
branches:
- main
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '14'
- name: Install dependencies
run: npm install
- name: Build and test
run: |
npm run build
npm test
- name: Deploy to server
run: |
ssh -o StrictHostKeyChecking=no ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }} 'bash -s' < deploy_script.sh
在項目根目錄下創建一個deploy_script.sh
文件,用于在遠程服務器上執行部署操作:
#!/bin/bash
# Navigate to the deployment directory
cd /path/to/deployment/directory
# Pull the latest code
git pull origin main
# Install dependencies
npm install
# Build the project
npm run build
# Restart the Node.js application
pm2 restart my-node-app
確保deploy_script.sh
文件具有可執行權限:
chmod +x deploy_script.sh
為了安全地連接到遠程服務器,你需要配置SSH密鑰。將你的公鑰添加到遠程服務器的~/.ssh/authorized_keys
文件中,并在GitHub Secrets中添加以下內容:
SERVER_USER
: 遠程服務器的用戶名SERVER_HOST
: 遠程服務器的主機名或IP地址每次你向main
分支推送代碼時,GitHub Actions工作流將自動觸發,并執行部署腳本,將你的Node.js應用程序部署到遠程服務器。
通過以上步驟,你就可以在Linux上實現Node.js應用程序的自動化部署。根據具體需求,你可以進一步優化和擴展這個流程。