yurn启动成功完成后,Node.js docker容器以退出代码0退出

问题描述

我的Dockerfile波纹管构建成功:

FROM node:10-alpine

ENV VS_ENV prod

workdir /var/www

copY shims.d.ts ./
copY tsconfig.json ./
copY tsconfig-build.json ./
copY package.json ./
copY yarn.lock ./
copY config ./config
copY core ./core
copY ecosystem.json ./
copY .eslintignore ./
copY .eslintrc.js ./
copY lerna.json ./
copY package.json ./
copY src ./src

RUN apk add --virtual .build-deps ca-certificates wget python make g++ \
  && apk add git \
  && yarn install \
  && yarn build

然后使用以下命令运行容器:

docker run -it -p 3000:3000 vue/sf:4a yarn start

日志显示,据我了解,该应用程序已启动:

[PM2] Spawning PM2 daemon with pm2_home=/root/.pm2
[PM2] PM2 Successfully daemonized
[PM2][WARN] Applications server not running,starting...
[PM2] App [server] launched (4 instances)
┌──────────┬────┬─────────┬─────┬────────┬─────────┬────────┬─────┬───────────┬──────┬──────────┐
│ App name │ id │ mode    │ pid │ status │ restart │ uptime │ cpu │ mem       │ user │ watching │
├──────────┼────┼─────────┼─────┼────────┼─────────┼────────┼─────┼───────────┼──────┼──────────┤
│ server   │ 0  │ cluster │ 52  │ online │ 0       │ 0s     │ 34% │ 72.5 MB   │ root │ disabled │
│ server   │ 1  │ cluster │ 59  │ online │ 0       │ 0s     │ 28% │ 61.0 MB   │ root │ disabled │
│ server   │ 2  │ cluster │ 70  │ online │ 0       │ 0s     │ 24% │ 35.3 MB   │ root │ disabled │
│ server   │ 3  │ cluster │ 81  │ online │ 0       │ 0s     │ 20% │ 30.0 MB   │ root │ disabled │
└──────────┴────┴─────────┴─────┴────────┴─────────┴────────┴─────┴───────────┴──────┴──────────┘
 Use `pm2 show <id|name>` to get more details about an app
Done in 2.08s.

但是容器没有保持正常运行,而是以状态代码0退出,因此没有错误

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
8b77d6ffe26e        vue/sf:4            "docker-entrypoint.s…"   11 minutes ago      Exited (0) 11 minutes ago                       keen_raman

任何想法请问我在做什么错了?

谢谢

解决方法

您的容器出口状态为0,这意味着一切都按预期进行。看来您的应用程序只是启动了一些服务然后退出。我们需要查看运行您的应用程序的命令。另外,我们可能需要查看您的源代码。

顺便说一句,如果您运行的命令与pm2相关,请尝试使用-no-daemon 选项启动pm2。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...