Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js docker容器崩溃,退出,代码139_Node.js_Mongodb_Docker_Docker Compose - Fatal编程技术网

Node.js docker容器崩溃,退出,代码139

Node.js docker容器崩溃,退出,代码139,node.js,mongodb,docker,docker-compose,Node.js,Mongodb,Docker,Docker Compose,我有这个docker文件构建/运行一个节点应用程序 # ---- Base Node ---- FROM node:10 AS base # Create app directory WORKDIR /app # ---- Dependencies ---- FROM base AS dependencies COPY package.json ./ # install app dependencies including 'devDependencies' RUN npm install

我有这个docker文件构建/运行一个节点应用程序

# ---- Base Node ----
FROM node:10 AS base
# Create app directory
WORKDIR /app

# ---- Dependencies ----
FROM base AS dependencies  
COPY package.json ./
# install app dependencies including 'devDependencies'
RUN npm install

# ---- Copy Files/Build ----
FROM dependencies AS build  
WORKDIR /app
COPY . /app
# Build the app
RUN npm run build
WORKDIR /app/dist
# install npm models in dist
RUN npm install --only=production

# --- Release with Alpine ----
FROM node:10-alpine AS release  
# Create app directory
WORKDIR /app
# optional
ENV NODE_ENV=development
ENV MONGO_HOST=mongodb://localhost/chronas-api
ENV MONGO_PORT=27017
ENV PORT=80

# copy app from build
COPY --from=build /app/dist/ ./
CMD ["node", "index.js"]
并使用此docker编写文件

version: '3'

services:
  database:
    image: mongo
    container_name: mongo
    ports:
      - "27017:27017"

  app:
    build: .
    container_name: chronas_api
    ports:
      - "80:80"  
      - "5858:5858"
    links:
     - database
    environment:
      - JWT_SECRET='placeholder'
      - MONGO_HOST=mongodb://database/chronas-api
      - APPINSIGHTS_INSTRUMENTATIONKEY='placeholder'
      - TWITTER_CONSUMER_KEY=placeholder
      - TWITTER_CONSUMER_SECRET=placeholder
      - TWITTER_CALLBACK_URL=placeholder
      - PORT=80
    depends_on:
      - database
    stdin_open: true
    tty: true      
当我尝试写入mongodb时,节点容器总是会因以下错误而崩溃:

退出,代码139


有人能帮忙吗?当我仅使用docker运行应用程序时,它工作正常

问题可能是因为
节点:10 alpine
是一个标记,在该标记中,基础图像可能会随着更新而更改,因此当您在不使用compose的情况下构建同一应用程序时,它不会提取最新的图像,docker compose将改为从docker hub执行拉操作

基于alpine的图像可能存在一些依赖性问题,从一个版本调试到另一个版本非常困难,您可以找到解决此特定问题的一些可能性

我在应用程序中使用了标签
节点:8-alpine
,我发现当前最新的
节点:8.15.1-alpine
导致
退出,代码139
问题在前一张图像
节点:8.15.0-alpine
中不存在。降级可能是解决此类问题的最简单解决方案,请检查您是否也在使用bcrypt


另一个选择是使用基于Debian的图像,它不太可能出现这种问题(只是考虑它的尺寸稍大)。