2017-09-26 12 views
0

Dockerコンテナを使用してJenkinsでビルド・パイプラインを構築していますが、そのイメージがJenkinsと同じサーバーに存在しない場合実行中です。私はこれを行うための最もシンプルでエレガントな方法の後ですが、私は何かを考え出すのに苦労しています。Jenkinsに存在しない場合にのみドッキング・イメージを構築する

+0

ジンキンドッカープラグインまたは直接シェルコマンドを使用していますか? – yamenk

+0

私はシェルコマンドを使用していますが、これがもっともエレガントなやり方を提供するならば、このプラグインを使用してもうれしいです。 – ChrisAdkin

+0

イメージが既に存在する場合にイメージを構築したくない理由はありますか?作成するたびにイメージの内容が変更されない限り、Dockerビルドキャッシュは、既存のイメージの再構築がほぼ即時になることを意味します。 –

答えて

0

あなたはからの出力を取ることができます:あなたが構築しようとする画像名をgrepすると

docker image ls 

しかし、ジェンキンスでイメージを「ビルド」すると、既存のイメージが同じであっても「新しい」イメージが作成されます。どのように知っていますか?

ドッカーの画像はテンプレートです。異なるホストで画像を再構築しているようですね。その場合は、中央の(プライベート)レジストリを使用し、そのイメージが必要なさまざまなホストから取得することを検討してください。

2

このquestionの回答に記載されているように、画像が存在するかどうかを確認するには、次のようにします。

if [[ "$(docker images -q myimage:mytag 2> /dev/null)" == "" ]]; then 
    # do something 
fi 
+0

ありがとう、私の謝罪、私は質問でこれを述べたはずだった、私は窓で動作する方法が必要です。 – ChrisAdkin

+0

あなたが私に与えたものを受け取り、それをPowerShellの使用に適応させることができます。 – ChrisAdkin

+0

@ChrisAdkinはい基本的に 'docker images'の-qオプションはウィンドウ上で同じように動作するはずです。 – yamenk

関連する問題