与Docker一起使用PM2
pm2-runtime的目标是将您的应用包装到合适的Node.js生产环境中。 它解决了在容器内部运行Node.js应用时遇到的主要问题:
- 高应用可靠性的第二个过程回退
- 进程流控制
- 自动监控应用以便使它始终保持健全和高性能
- 自动源地图发掘与解析支持
除此之外,使用PM2作为容器和应用之间的一个层,带来了PM2强大的功能,如生态系统文件,自定义日志系统和pm2的其他功能。
您可以在这里找到更多关于镜像变体的信息。
使用
我们假设您的项目有以下文件夹结构。
设置您的生态系统文件
生成一个ecosystem.config.js
模板:
pm2 init
修改生态系统文件以符合您的需求:
使用以下内容创建一个名为Dockerfile
的新文件
FROM keymetrics/pm2:latest-alpine
# Bundle APP files
COPY src src/
COPY package.json .
COPY ecosystem.config.js .
ENV NPM_CONFIG_LOGLEVEL warn
RUN npm install --production
# Expose the listening port of your app
EXPOSE 8000
# Show current folder structure in logs
RUN ls -al -R
CMD [ "pm2-runtime", "start", "ecosystem.config.js" ]
建立您的镜像
从您的Node.js应用项目文件夹启动这些命令:
运行您的镜像
-p 80:8000
将您应用的端口8000绑定到本地主机的端口80
pm2命令仍然可以在docker exec
命令的容器中使用:
暴露安全端点
CMD ["pm2-runtime", "ecosystem.config.js", "--web"]
选项允许通过JSON API公开所有重要信号(docker实例+应用).
您准备好了
就是这样! 您的容器已准备好部署。
使用完成您的配置
使用 PM2 Plus在仪表板上监控您的应用
我们一直乐于帮您解决可能遇到的问题。搜索我们的文档或查看常见问题的答案。您也可以在我们的社区论坛发布问题或评论。
原文: