2017-09-12 24 views
0

Dockerfileをビルドするタイミングを出力するようにDockerを設定することはできますか?Dockerビルドステップ時間の測定方法は?

私たちは中規模の開発チームを運営しており、開発者の開発コンテナの平均構築時間に関する統計を収集したいと考えています。

理想的には、個々のステップの持続時間を測定する必要があります。

+0

私はこの質問を各 'RUN'コマンドのタイミングにまで広げます。 –

答えて

1

ツールtimeを使用してビルド時間を測定できます。例えば。

time docker build . 

個別のビルドステップでは、それだけ難しくなります。各ステップの後にRUN dateコマンドで実行できますが、イメージに別のレイヤーが追加されます。だから、ちょっと面倒です。

+0

ありがとう@tlo、私は 'time'をすぐに回避策として使用してきましたが、個々のステップでより細分化できることが大好きです。特に、キャッシュされたレイヤーのために特定のステップがスキップされた時期を知ることができます。 –

0

私はそれも疑問に思っていました。個々のステップで私が思いついた唯一の解決策は、各ステップの最後にdate +'%F %T'を入れることです。

RUN set -x && apt-get update && date +'%F %T' 
RUN apt-get install -y vim && date +'Time: %F %T' 

出力:

Get:1 http://security.debian.org stretch/updates InRelease [63.0 kB] 
... 
Time: 2018-03-08 00:42:41 

バッシュでは、bashのセッション開始からの時間を与えるecho $SECONDSを使用することができます。またはtime (...)(サブシェル)ですが、Dockerビルド環境はbashではなくshで実行されます。

関連する問題