【发布时间】:2016-06-08 06:37:05
【问题描述】:
我正在使用 dockerfile 加载我的节点 js 应用程序,当我运行命令 docker run -p 4500:4500 myname/my-docker-image 时,由于某种原因,图像构建成功
我得到了回应:
pm2 launched in no-daemon mode (you can add DEBUG="*" env variable to get more messages)
2016-06-08 06:29:17: [PM2][WORKER] Started with refreshing interval: 30000
2016-06-08 06:29:17: [[[[ PM2/God daemon launched ]]]]
2016-06-08 06:29:17: BUS system [READY] on port /root/.pm2/pub.sock
2016-06-08 06:29:17: RPC interface [READY] on port /root/.pm2/rpc.sock
2016-06-08 06:29:17: [PM2][ERROR] File processes.json not found
2016-06-08 06:29:17:
│ App name │ id │ mode │ pid │ status │ restart │ uptime │ memory │ watching │
└──────────┴────┴──────┴─────┴────────┴─────────┴────────┴────────┴──────────┘
2016-06-08 06:29:17: Use `pm2 show <id|name>` to get more details about an app
2016-06-08 06:29:17: --no-daemon option enabled = do not exit pm2 CLI
2016-06-08 06:29:17: PM2 daemon PID = 1
2016-06-08 06:29:17: [PM2] Streaming realtime logs for [all] processes
关键是我在构建 pm2 时明确定义的 processes.json 文件。
这是我的 processes.json 文件的内容:
"apps": [
{
"name": "jira-accelo-integration",
"script": "server.js",
"merge_logs": true,
"max_restarts": 20,
"instances": 4,
"DEBUG": "*",
"max_memory_restart": "200M",
"env": {
"PORT": 4500,
"NODE_ENV": "production"
}
}
]
}
【问题讨论】:
-
你应该展示(但没有展示)的最重要的东西是:1)processes.js的路径2)你如何将它传递给pm2
-
process.js 的路径?我在关于 processes.js 的 pm2 文档中找不到任何地方
-
抱歉,我的意思是 processes.json
-
1) 我的 processes.json 文件位于我的项目根目录中,并且 2)
CMD ["pm2", "start", "processes.json", "--no-daemon"]位于我的 dockerfile 的末尾。 -
而在dockerfile中你调用pm2 start processes.json,对吧?
标签: node.js dockerfile docker-machine pm2