如何使用 PM2 一键部署 node 服务

阅读时长 4 分钟读完

前言

在开发 node.js 项目时,我们通常会使用 PM2 来管理进程和部署服务。PM2 是一个非常强大的进程管理工具,它可以让我们轻松地启动、停止、重启、监控和部署 node 服务。在本文中,我们将介绍如何使用 PM2 进行一键部署 node 服务,并确保环境不落单。

准备工作

在开始之前,我们需要确保已经安装了 PM2。如果没有安装,可以使用以下命令进行安装:

一键部署

PM2 提供了一个非常方便的命令来进行一键部署,即 pm2 deploy。使用该命令可以轻松地将我们的代码部署到远程服务器上,并自动安装依赖、启动服务等操作。

创建部署配置文件

在开始部署之前,我们需要创建一个部署配置文件,该文件可以告诉 PM2 如何进行部署。配置文件通常包含以下内容:

  • 服务器信息:包括服务器 IP、用户名、密码等。
  • 代码仓库地址:需要部署的代码所在的仓库地址。
  • 部署路径:代码部署到服务器上的路径。
  • 环境变量:如果需要设置环境变量,可以在配置文件中进行设置。

以下是一个简单的部署配置文件示例:

-- -------------------- ---- -------
- ----------------
-------------- - -
  ----------- -
    ----- -------
    ----- -----------------
    ---- ----------------
    ----- -------------------------------
    ----- --------------------
    -------------- ---- ------- -- --- ------ ------------------- ----- ------------
    ---- -
      --------- ------------
    -
  -
-

在上面的配置文件中,我们定义了一个名为 production 的部署环境,该环境的服务器 IP 为 your-server-ip,代码仓库地址为 git@github.com:your/repo.git,部署路径为 /var/www/your-app。在部署完成后,我们将自动安装依赖并重新启动服务。

进行部署

在创建完部署配置文件后,我们可以使用以下命令来进行部署:

以上命令将会使用 deploy.config.js 配置文件中的 production 环境进行部署。部署完成后,我们可以使用以下命令来查看部署状态:

环境不落单

在进行部署时,我们需要确保环境不落单。也就是说,我们需要在部署服务器上安装与本地开发环境相同的依赖包。为了解决这个问题,我们可以使用 Docker 来创建一个与本地开发环境相同的容器,并将代码部署到该容器中。

创建 Dockerfile

在开始之前,我们需要先创建一个 Dockerfile 文件,该文件可以告诉 Docker 如何构建容器。以下是一个简单的 Dockerfile 文件示例:

在上面的 Dockerfile 文件中,我们首先使用 FROM 命令指定了基础镜像为 node:14-alpine,然后使用 WORKDIR 命令指定了工作目录为 /app,接着使用 COPY 命令将 package.json 文件复制到容器中,并使用 RUN 命令安装依赖包。最后使用 COPY 命令将所有文件复制到容器中,并使用 CMD 命令启动服务。

构建镜像并部署

在创建完 Dockerfile 文件后,我们可以使用以下命令来构建镜像:

以上命令将会使用当前目录下的 Dockerfile 文件来构建一个名为 your-image-name 的镜像。

然后,我们可以使用以下命令来启动容器:

以上命令将会启动一个名为 your-image-name 的容器,并将容器内的 your-port 端口映射到宿主机的 your-port 端口上。

最后,我们可以使用 PM2 的部署命令来将代码部署到容器中:

总结

使用 PM2 进行一键部署 node 服务是非常方便的。通过创建部署配置文件,我们可以轻松地将代码部署到远程服务器上,并自动安装依赖、启动服务等操作。使用 Docker 可以确保环境不落单,并且能够快速部署服务。希望本文对你有所帮助,也欢迎大家在评论区留言,分享你的经验和想法。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/651695d995b1f8cacdee9de5

纠错
反馈