2016-01-28 8 views
7

npm installをDockerfileで実行しようとしていますが、色を無効にしてもDockerhubビルドログに色コードが表示されるようです。npm installでDocker Hubにインストール中に色が表示される

何が間違っていますか?

あなたはドッカーハブ上のビルドの詳細をDockerfileを見つけることができます。https://hub.docker.com/r/amcsi/szeremi/builds/btk4utf3whezxqhnbzpkhyw/

Dockerfile:

FROM node 
MAINTAINER Attila Szeremi <[email protected]> 
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"] 

ビルドスクリプトの出力のサンプル:

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 [email protected] 
[0m[91mnpm[0m[91m [0m[91minfo[0m[91m [0m[91musing[0m[91m [email protected] 
[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 [email protected] 
[0m[91mnpm[0m[91m [0m[91minfo[0m[91m [0m[91musing[0m[91m [email protected] 
[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 [email protected] 
[0m[91mnpm[0m[91m [0m[91minfo[0m[91m [0m[91musing[0m[91m [email protected] 
+0

あなたはホストの端末で色を無効にしましたか? – ipinak

+0

このディスプレイ端末には、Dockerファイルのステップがどのように行われたかを示すDocker Hubの出力ビューの色がありません。 –

答えて

0

FROM nodeは、現在(node 6.5を意味し、 2016年9月の最新情報)

issue 225に記載されているように、スピードバーのの進行状況バーが表示されます。

簡単なテストケース試してみてください。場合

npm --color false install --production 

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 

それともnpm installコマンドに直接--color falseを追加してを最新のバグレポートであるため、何も問題なく、問題225を再度開いてくださいue。 AnsiColor Plugin

それともジェンキンスジョブを実行することを検討この回答(2016年10月)以来


F少なくともサポートに、問題225は言及:

問題は、あなたのことですJenkinsはコンソール出力でANSIエスケープシーケンスをサポートしていません。
Dockerビルドでは、DockerfileのSTDERRのすべての出力が赤で表示されます。 @tianonで述べたように、AnsiColor + Pluginを使ってこれを修正するだけです。

だから、これを回避するための1つの方法はRUN npm install 2>&1this comment of the issue 225Zack Steinkampで述べたように、任意の出力を無視することです。私のために働いた

+0

ご覧のとおり、Dockerfileでcolorはすでにfalseに設定されています。それはうまくいきません。 –

+0

@AttilaSzeremiはい、私の他の提案。 – VonC

+0

動作しませんでした。変更はありません。 https://hub.docker.com/r/amcsi/skill-builder/builds/brhzu6kukthmhdntdrjrdxf/あなたの提案より前のものと比較してください:https://hub.docker.com/r/amcsi/skill-builder/ビルド/ bggwmmdjkhwpekfjnyq8gea / –