2017-01-11 11 views
2

複数のコンテナ(リバースコンテナ、オラクルコンテナ、およびmaven jdkコンテナ)をリンクしようとしているパイプラインスクリプトがあります。jenkinsパイプラインでコンテナIDを取得中にエラーが発生しました

まず私はOracleのコンテナを作成します。[OK]を動作するようです私の自由コンテナにリンク

db = docker.build('oracle', 'docker/oracle').run("-p 49160:22 -p 49161:1521") 

wlp = docker.build('liberty', 'docker/liberty').run("-p 9080:9080 --link=${db.id}:oracle") 

しかし、私はMavenの1にリンクしようとすると:

mvn.inside('-v $M2_REPO:/m2repo --link=${db.id}:oracle ') { 

私はジェンキンスに、次のエラーが表示されます。

Failure: java.io.IOException: Failed to run image 'maven:3.3.9-jdk-8'. Error: docker: Error response from daemon: Could not get container for ${db.id}. See '/usr/bin/docker-current run --help'.

これはrunではなくinsideコールを使用しているという事実に関連していますか?

答えて

3

あなたの変数${db.id}(またはグルーヴィー話す:interpolated)に置換されていないあなたは単一重引用符を使用しているので、置くパイプラインDSLスクリプト内。

にあなたのコマンドを調整して、代わりに二重引用符を使用します。

mvn.inside("-v \$M2_REPO:/m2repo --link=${db.id}:oracle") { 

を私はこのようにそれが\を付加することでを逃れている、あなたは$M2_REPOを補間しているにしたくないと仮定します。

0

私はどの言語か分かりませんが、ドッカービルドはカレントディレクトリのファイル "Dockerfile"を探します。だから docker.build('oracle', 'docker/oracle') はすでに画像を構築しているので、tag docker/oracle でビルドしないでください。

関連する問題