2016-05-11 15 views
2

Jenkinsをビルドし、Dockerコンテナをデプロイしています。Jenkins:画像を構築中にDockerに変数を渡す

Dockerfileの中に変数($ ENVIRONMENT)を使用しています。この変数をJenkinsからどのように設定できますか? ENVIRONMENT=test|liveのようなものです。変数は、後でドッカーコンテナ内で利用可能でなければなりません。

つまり、 ジェンキンズからthisをどうすれば達成できますか?

答えて

1

あなたジェンキンスジョブがコンテナを起動するために使用docker runコマンドを制御している場合は、使用することができますdocker run -e option

一つ以上の-eのフラグを使用してコンテナ内のすべての環境変数を設定することができ、オペレータ

これらの変数は、(起動した)ドッカーコンテナで利用できるようになります。

つまり、これらの変数の実行時バインディングを実行します。

+0

私は 'run'の$ ENVIRONMENT変数にアクセスするために自分のコードをリファクタリングしましたが、テスト環境でタグ付けされたビルドイメージに正しい設定ファイルを置く方がクリーンであると思いました。 – kev

+0

@kevあなたの仕事がイメージを構築する場合は、ENV:https://docs.docker.com/engine/reference/builder/#env:​​を使用してイメージに記憶され、コンテナに渡されますドッカーが走っている。 – VonC

+0

Dockerfileで環境変数をハードコードすると、環境ごとに1つ必要です。 – kev

関連する問題