在本教程中,我们将讨论如何使用主管和github操作将node.js应用程序部署到零停机时间的digitalocean。 Substisord是一个流程管理器,可用于管理服务器上的多个进程,例如Node.js应用程序。 GitHub操作是一种强大的工具,可让您自动化任务,例如构建,测试和部署代码。
先决条件
开始之前,您应该有以下内容:
- 您要部署到digitalocean 的node.js应用程序
- Digitalocean帐户和一个液滴(虚拟服务器)设置
- 您的node.js应用程序的github存储库
- 安装在本地机器上的git
步骤1:在您的液滴上安装主管
要安装主管,您将需要SSH进入液滴。登录后,运行以下命令以安装主管:
sudo apt-get update && sudo apt-get install -y supervisor
步骤2:设置主管以运行您的node.js应用程序
接下来,您需要为Subersord创建一个配置文件,该文件告诉其如何运行node.js应用程序。
首先,为您的应用程序创建一个目录:
mkdir /var/www/node-app
接下来,在/etc/supervisor/conf.d Directory中为Substisord创建一个配置文件:
sudo nano /etc/supervisor/conf.d/node-app.conf
在配置文件中,添加以下内容:
[program:node-app]
command=node /var/www/node-app/index.js
directory=/var/www/node-app
autostart=true
autorestart=true
stderr_logfile=/var/log/node-app/error.log
stdout_logfile=/var/log/node-app/output.log
此配置文件告诉主管在 index.js 文件中运行/var/var/www/node-app 目录,并将任何错误或输出记录到指定的日志文件。
步骤3:设置github操作以部署您的node.js应用程序
现在设置了主管来运行您的node.js应用程序,您可以使用github操作来自动化部署过程。
首先,通过在.github/workflows/deploy.yml
上创建一个新文件。
在工作流文件中,添加以下内容:
name: Deploy
on:
push:
branches:
- master
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: npm install
- name: Build
run: npm run build
- name: Deploy to DigitalOcean
uses: appleboy/ssh-action@master
with:
host: my-node-app.com
username: root
password: ${{ secrets.DIGITALOCEAN_PASSWORD }}
script: |
cd /var/www/node-app
git pull origin master
supervisorctl
结论
在本教程中,我们讨论了如何使用主管和github操作将node.js应用程序部署到零停机时间的digitalocean。我们在液滴上安装了Substisord,创建了一个配置文件来运行我们的node.js应用程序,并设置了github操作工作流程以自动化部署过程。通过使用Substisord来管理服务器和GitHub操作上的过程以自动化部署过程,您可以确保应用程序始终运行顺利,并且易于更新。