使用Subersisord和GitHub操作将NODE.JS应用程序部署到Digitalocean,零停机时间
#node #devops #云 #cicd

在本教程中,我们将讨论如何使用主管和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操作上的过程以自动化部署过程,您可以确保应用程序始终运行顺利,并且易于更新。