我是码头工人的新手。我构建了一个名为:的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的“主机”名称)
答案 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"]