Docker容器退出:分段错误,错误139,退出状态139

时间:2018-08-22 07:22:41

标签: docker npm docker-compose errno

我是码头工人的新手。我构建了一个名为:的docker容器,该应用在其中运行我的Web应用程序,一个mongodb的一个名为:mongo容器,为我的Web应用程序提供数据。 我使用docker compose来设置两个容器。 我的网络服务器上有一个登录屏幕,当我想登录时,我的应用程序容器崩溃了。 伴随以下错误消息:

app      | Segmentation fault (core dumped)
app      | npm ERR! code ELIFECYCLE
app      | npm ERR! errno 139
app      | npm ERR! test@0.0.0 start: `NODE_ENV=production node ./bin/www`
app      | npm ERR! Exit status 139
app      | npm ERR!
app      | npm ERR! Failed at the test@0.0.0 start script.
app      | npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
app      |
app      | npm ERR! A complete log of this run can be found in:
app      | npm ERR!     /root/.npm/_logs/2018-08-22T06_49_55_101Z-debug.log

我的dockerfile如下所示:

FROM node:8.11.3-alpine

ARG NPM_TOKEN

WORKDIR /usr/src/app

COPY .npmrc .npmrc
COPY package*.json ./
RUN apk --no-cache add --virtual native-deps \
 g++ gcc libgcc libstdc++ linux-headers make python && \
 npm install --quiet node-gyp -g &&\
 npm install --quiet && \
 apk del native-deps

RUN npm install

RUN rm -f .npmrc
COPY . .

EXPOSE 3000
CMD [ "npm", "start"]

和docker-compose.yml像这样:

version: "2"
services:
 app:
   container_name: app
   restart: always
   build: .
   ports:
     - "3000:3000"
   links:
     - mongo
 mongo:
   container_name: mongo
   image: mongo
   volumes:
     - ./data:/data/db
   ports:
     - "27017:27017"

当我仅使用命令“ NODE_ENV =生产节点./bin/www”(不带容器)启动mongodb容器和应用程序时,一切工作正常... (我只能在本地或容器中运行应用程序时更改mongo db的“主机”名称)

1 个答案:

答案 0 :(得分:0)

我实际上不知道我在做什么,但是当我像这样更改我的dockerfile时,它正在工作:

FROM node:8.11.3-alpine
ARG NPM_TOKEN

RUN apk update

WORKDIR /usr/src/app

COPY .npmrc .npmrc

COPY package*.json ./

RUN apk --no-cache add --virtual builds-deps build-base python

RUN npm config set python /usr/bin/python
RUN npm i -g npm
RUN npm install
RUN npm rebuild bcrypt --build-from-source
RUN apk del builds-deps
RUN rm -f .npmrc

COPY . .

EXPOSE 3000

CMD [ "npm", "start"]