与Docker一起使用PM2

    pm2-runtime的目标是将您的应用包装到合适的Node.js生产环境中。 它解决了在容器内部运行Node.js应用时遇到的主要问题:

    • 高应用可靠性的第二个过程回退
    • 进程流控制
    • 自动监控应用以便使它始终保持健全和高性能
    • 自动源地图发掘与解析支持
      除此之外,使用PM2作为容器和应用之间的一个层,带来了PM2强大的功能,如生态系统文件,自定义日志系统和pm2的其他功能。

    您可以在这里找到更多关于镜像变体的信息。

    使用

    我们假设您的项目有以下文件夹结构。

    设置您的生态系统文件

    生成一个ecosystem.config.js模板:

    1. pm2 init

    修改生态系统文件以符合您的需求:

    使用以下内容创建一个名为Dockerfile的新文件

    1. FROM keymetrics/pm2:latest-alpine
    2. # Bundle APP files
    3. COPY src src/
    4. COPY package.json .
    5. COPY ecosystem.config.js .
    6. ENV NPM_CONFIG_LOGLEVEL warn
    7. RUN npm install --production
    8. # Expose the listening port of your app
    9. EXPOSE 8000
    10. # Show current folder structure in logs
    11. RUN ls -al -R
    12. CMD [ "pm2-runtime", "start", "ecosystem.config.js" ]

    建立您的镜像

    从您的Node.js应用项目文件夹启动这些命令:

    运行您的镜像

      -p 80:8000将您应用的端口8000绑定到本地主机的端口80

      pm2命令仍然可以在docker exec命令的容器中使用:

      暴露安全端点

      1. CMD ["pm2-runtime", "ecosystem.config.js", "--web"]

      选项允许通过JSON API公开所有重要信号(docker实例+应用).

      您准备好了

      就是这样! 您的容器已准备好部署。

      使用完成您的配置

      使用 PM2 Plus在仪表板上监控您的应用

      我们一直乐于帮您解决可能遇到的问题。搜索我们的文档或查看常见问题的答案。您也可以在我们的社区论坛发布问题或评论。

      原文: