容器不遵守流程的退出状态

时间:2019-10-04 12:42:47

标签: node.js docker npm bamboo

我对容器内部进程的退出代码如何传递给docker感到困惑。 我有一个运行npm运行脚本的容器。 npm运行脚本失败,退出状态为1,但似乎退出状态未传递给docker进程本身,因为Bamboo将构建任务标记为成功。

30-Sep-2019 15:43:53    npm ERR! Exit status 1
30-Sep-2019 15:43:53    npm ERR!
30-Sep-2019 15:43:53    npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
30-Sep-2019 15:43:53    
30-Sep-2019 15:43:53    npm ERR! A complete log of this run can be found in:
30-Sep-2019 15:43:53    npm ERR!     /root/.npm/_logs/2019-09-30T13_43_53_321Z-debug.log
30-Sep-2019 15:43:54    Stopping containers 
30-Sep-2019 15:43:54    b3efbe0710cc
30-Sep-2019 15:43:54    Removing containers
30-Sep-2019 15:43:55    b3efbe0710cc
30-Sep-2019 15:43:55    Finished task 'Script' with result: Success

容器是通过docker run命令启动的。

docker run -e GIT_REPO=${bamboo_repository_git_repositoryUrl} -e RELEASE_VERSION=${bamboo.release_version} wc-release:1.0.0

发布容器的dockerfile如下:

FROM node:12

ENV RELEASE_VERSION=${VERSION}
ENV GIT_REPO=${REPO}

ENV http_proxy=http://***
ENV https_proxy=http://***

COPY .npmrc /root/.npmrc
COPY .gitconfig /root/.gitconfig
COPY .git-credentials /root/.git-credentials

WORKDIR /home/node/app

ENTRYPOINT git clone ${GIT_REPO} /home/node/app && npm install && npm run release:prepare && npm run release:testless -- ${RELEASE_VERSION}

有什么建议吗? 提前致谢。 问候

1 个答案:

答案 0 :(得分:0)

需要向竹子发送一个明确的退出代码,这可以通过在bash脚本中使用set -e来实现。您将得到如下内容:

#! /usr/bin/env bash
set -e
docker run -e GIT_REPO=${bamboo_repository_git_repositoryUrl} -e RELEASE_VERSION=${bamboo.release_version} wc-release:1.0.0