在安装Docker Hub时,npm install会显示颜色

我试图执行npm install在一个Dockerfile,但即使当应该禁用颜色,颜色代码似乎仍然出现在Dockerhub生成日志。

我可能会做错什么?

您可以在Docker Hub上find具有构build细节的Dockerfile: https ://hub.docker.com/r/amcsi/szeremi/builds/btk4utf3whezxqhnbzpkhyw/

Dockerfile:

 FROM node MAINTAINER Attila Szeremi <attila+webdev@szeremi.com> RUN mkdir /src WORKDIR /src RUN cd /src # Copy just the package.json file file as a cache step. COPY package.json /src/package.json # Disable progress so npm would install faster. # Disable colors, because Dockerhub can't display them. # Install NPM packages excluding the dev dependencies. RUN npm set progress=false && npm set color=false && npm install --production COPY . . RUN npm run build EXPOSE 8080 CMD ["npm", "run", "start"] 

构build脚本的输出示例:

 Step 3 : WORKDIR /src ---> Running in 4a8ec4902bee ---> ce66cec7780b Removing intermediate container 4a8ec4902bee Step 4 : RUN cd /src ---> Running in 561c6d10cdb8 ---> c12b27e7c01a Removing intermediate container 561c6d10cdb8 Step 5 : COPY package.json /src/package.json ---> ebbb940c8911 Removing intermediate container c39be008ad46 Step 6 : RUN npm set progress=false && npm set color=false && npm install --production ---> Running in c9ebee32f367 [91mnpm[0m[91m [0m[91minfo[0m[91m [0m[91mit worked if it ends with[0m[91m ok [0m[91mnpm[0m[91m [0m[91minfo[0m[91m [0m[91musing[0m[91m npm@3.3.12 [0m[91mnpm[0m[91m [0m[91minfo[0m[91m [0m[91musing[0m[91m node@v5.5.0 [0m[91mnpm[0m[91m [0m[91minfo[0m[91m [0m[91mconfig[0m[91m set "progress" "false" [0m[91mnpm[0m[91m [0m[91minfo[0m[91m ok [0m[91mnpm[0m[91m [0m[91minfo[0m[91m [0m[91mit worked if it ends with[0m[91m ok [0m[91mnpm[0m[91m [0m[91minfo[0m[91m [0m[91musing[0m[91m npm@3.3.12 [0m[91mnpm[0m[91m [0m[91minfo[0m[91m [0m[91musing[0m[91m node@v5.5.0 [0m[91mnpm[0m[91m [0m[91minfo[0m[91m [0m[91mconfig[0m[91m set "color" "false" [0m[91mnpm[0m[91m [0m[91minfo[0m[91m [0m[91mok[0m[91m [0m[91mnpm[0m[91m [0m[91minfo[0m[91m [0m[91mit worked if it ends with[0m[91m ok [0m[91mnpm[0m[91m [0m[91minfo[0m[91m [0m[91musing[0m[91m npm@3.3.12 [0m[91mnpm[0m[91m [0m[91minfo[0m[91m [0m[91musing[0m[91m node@v5.5.0 

我的解决scheme是npm install 2>&1 ,我在这里find: https : //github.com/nodejs/docker-node/issues/225

FROM node表示节点6.5 (目前最新的2016年9月)

正如问题225中提到的那样,它带有一个进度条(你试图禁用) 一个微调。

试试简单的testing用例:

 FROM node:6.4.0 ENV NPM_CONFIG_PROGRESS false ENV NPM_CONFIG_SPIN false WORKDIR /app RUN npm install express 

或者通过复制一个.npmrc:

 progress=false spin=false 

或者直接将--color false直接添加到npm install命令中:

  npm --color false install --production 

如果什么都行不通,重新打开问题225,因为这是最新的问题报告。

或者考虑使用AnsiColor插件在Jenkins中运行这个工作,至less支持f


自从这个答案(2016年10月),问题225提到:

问题是您的Jenkins在控制台输出中不支持ANSI转义序列。
Docker文件中的STDERR上的所有输出由docker build以红色打印。 所以正如@tianon所提到的,只需使用AnsiColor +插件来解决这个问题。

所以解决这个问题的方法之一就是忽略任何输出,正如Zack Steinkamp在第225期的RUN npm install 2>&1 注释中提到的, RUN npm install 2>&1