简体   繁体   English

当我用PM2 + Docker启动我的应用程序时,只需运行并退出

[英]When I start my app with PM2 + Docker, just run and exit

I try to follow this tutorial , but when I execute my app nothing happens 我尝试按照本教程 ,但当我执行我的应用程序时没有任何反应

My Dockerfile (CHANGED) 我的Dockerfile(已更改)

FROM keymetrics/pm2-docker-alpine:7

WORKDIR /api

RUN npm install pm2 -g

ADD . .

CMD ["pm2-docker", "ecosystem.config.js"]

And my ecosystem.config.js .. 还有我的ecosystem.config.js ..

const maxMemory = process.env.WEB_MEMORY || 80;
const nodeEnv = process.env.NODE_ENV || 'development';

module.exports = {
  apps: [
    {
      name: 'api',
      script: 'api/index.js',
      node_args: [
        '--optimize_for_size', '--max_old_space_size=400', '--gc_interval=100',
      ],
      instances: process.env.WEB_CONCURRENCY || -1,
      exec_mode: 'cluster',
      max_memory_restart: `${maxMemory}M`,
      env: {
        PORT: process.env.PORT || 3000,
        NODE_ENV: nodeEnv,
      },
    },
  ],
};

After run the docker .. 运行码头之后......

docker run -d -p 3000:3000 --name api api:latest

Nothing happens.. follow the result of docker ps -a 什么都没发生..按照docker ps -a的结果

CONTAINER ID        IMAGE                                                           COMMAND                  CREATED             STATUS                      PORTS                      NAMES
167cb2769438        api:latest   "pm2-docker start ..."   50 seconds ago      Exited (1) 47 seconds ago

ADDED 添加

If I run without -d option .. 如果我没有-d选项运行..

> docker run -it -p 3000:3000 --name api api:latest
module.js:472
    throw err;
    ^

Error: Cannot find module 'commander'
    at Function.Module._resolveFilename (module.js:470:15)
    at Function.Module._load (module.js:418:25)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/usr/local/lib/node_modules/pm2/lib/CLI/RuntimeCLI.js:4:17)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)
[vagrant@localhost]$

删除RUN npm install pm2 -g ,因为PM2已经捆绑到pm2-docker-alpine中

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM