最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

docker容器崩溃,退出代码为139

IT培训 admin 6浏览 0评论

docker容器崩溃,退出代码为139

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

# ---- 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-compose文件

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运行应用程序时,它工作正常

回答如下:

问题可能是由于node:10-alpine是一个标签,其中底层图像可能随更新而变化,因此当您构建相同的应用程序而不使用compose时它不会拉动最近的图像,docker-compose会做一个拉动而是来自码头工人中心。

基于高山的图像可能有一些依赖性问题很难从一个版本调试到另一个版本,你可以找到这个特定问题的一些可能性here

我在我的应用程序中使用标签node:8-alpine,我发现当前最新的node:8.15.1-alpine导致Exited with code 139问题,这在上一张图片node:8.15.0-alpine中没有出现。降级可能是解决此类问题的最简单的解决方案,请检查您是否也在使用bcrypt。

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

docker容器崩溃,退出代码为139

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

# ---- 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-compose文件

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运行应用程序时,它工作正常

回答如下:

问题可能是由于node:10-alpine是一个标签,其中底层图像可能随更新而变化,因此当您构建相同的应用程序而不使用compose时它不会拉动最近的图像,docker-compose会做一个拉动而是来自码头工人中心。

基于高山的图像可能有一些依赖性问题很难从一个版本调试到另一个版本,你可以找到这个特定问题的一些可能性here

我在我的应用程序中使用标签node:8-alpine,我发现当前最新的node:8.15.1-alpine导致Exited with code 139问题,这在上一张图片node:8.15.0-alpine中没有出现。降级可能是解决此类问题的最简单的解决方案,请检查您是否也在使用bcrypt。

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

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论