PM2 + Docker 部署 Node.js 应用

阅读时长 5 分钟读完

Node.js 是一种轻量级高效的 JavaScript 运行环境,已经成为 Web 开发中重要的组成部分之一。然而,在开发完 Node.js 应用后,部署会是一个棘手的问题。特别是当出现多个 Node.js 应用时,如何管理和部署它们将成为一项面临挑战的任务。为了简化这一流程,我们可以使用 PM2 + Docker 进行部署,使 Node.js 应用变得更加容易管理和维护。

PM2

PM2 是一个Node.js 应用程序的进程管理器,可以提供自动化、线程工作和0秒停机重载。它是一个开源的项目,完全免费,并且目前已经有大量的企业和开发者在使用它来管理他们的 Node.js 应用。

安装 PM2

在使用 PM2 之前,我们需要先进行安装。可以通过以下命令进行全局安装:

PM2 的用法

PM2 可以通过命令行或者配置文件进行使用。常用的命令如下:

  • pm2 start:启动应用程序。
  • pm2 stop:停止应用程序。
  • pm2 restart:重启应用程序。
  • pm2 reload:在零停机重新加载应用程序。
  • pm2 delete:删除应用程序。
  • pm2 list:列出所有启动的应用程序。

在使用 PM2 时,我们可以通过以下命令来查看和管理当前的应用程序:

Docker

Docker 是一个开源的容器化平台,可以将应用程序和相关依赖打包到一个容器中,具有方便、快捷和重复使用的特点。使用 Docker 部署 Node.js 应用,可以保证应用的运行环境的一致性,降低了部署、运维的难度,同时也提高了安全性。

安装 Docker

在使用 Docker 之前,我们需要先进行安装。可以通过以下命令进行安装:

Docker 的用法

Docker 主要通过 Dockerfile 进行构建和管理,以下是一个简单的 Dockerfile:

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

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

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

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

---- - ------------
--- - ------- ------- -
  • FROM:设置基础的镜像为 node:8.14-alpine。
  • ENV:设置环境变量 NODE_ENV。
  • RUN:安装依赖和编译应用。
  • COPY:将应用的代码复制到指定的目录。
  • CMD:设置应用启动命令。

通过 Dockerfile 可以在镜像中构建出一个全新的开发环境。

PM2 和 Docker 的结合可以搭建出一个轻量、灵活、高效的 Node.js 应用部署方案。在使用 PM2 + Docker 部署 Node.js 应用时,我们可以通过以下步骤进行操作:

步骤1: 编写 Dockerfile

通过 Dockerfile 来构建一个全新的 Node.js 运行环境。

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

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

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

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

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

步骤2:编写 pm2.config.js

对于每个 Node.js 应用,都应该有一个 pm2.config.js 文件。这个文件应该包括应用的启动配置、启动命令以及环境变量等信息。

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

步骤3:编写 docker-compose.yml

编写 docker-compose.yml 文件,可以同时启动多个 Node.js 应用,例如:

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

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

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

步骤4:构建和启动

利用以下命令构建和启动 Node.js 应用:

以上命令将会构建、启动并在后台运行多个应用。

总结

使用 PM2 和 Docker 部署 Node.js 应用可以降低部署、运维的难度,同时提高应用的可维护性和安全性。在进行部署时,需要编写 Dockerfile、pm2.config.js 和 docker-compose.yml 等配置文件,通过这些文件可以管理多个 Node.js 应用同时启动。

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

纠错
反馈