2017-12-11 8 views
0

私はジェンキンスとドッカーを同じマシンのUbuntuにインストールしました。ジンキンのためのビルドスレーブとしてのドッカーコンテナ

  • のUbuntu 17.10
  • ジェンキンス版2.73.3
  • ドッカーバージョン17.09.0-ce。

私は自動化テストスイートを実行するためのスレーブとしてjenkinドッカーのコンテナを設定しようとしています。

ドッカーコンテナーを回転させるためにJenkinsでドッカープラグインを正しくセットアップし、ドッカー環境を設定するために作成したドッカーテンプレートを追加できました。

イメージはUbuntuでホストされているドッカー上に構築されています。

私はJenkinsからジョブを実行するときに問題が発生しました。これは、エラーメッセージ (保留-ジェンキンスは、ラベルのドッキングウィンドウスレーブを持っていません)

Jenkins pending image

私はUbuntuマシンでジェンキンスログを確認すると、私は次のエラーメッセージ

com.github.dockerjava.api.exception.NotFoundException: {"message":"pull access 
denied, "message":may require 'docker login'"} 

を参照してくださいを与えますubuntuマシンでは、すでにドッカーのログインを済ませています。

私がコンテナを構築しようとしているイメージは、どこのリポジトリにもプッシュされていないので、ubuntu上にあるため、なぜイメージをプルしようとしていますか?

また、私が解決する必要がある許可の問題は何ですか。 jenkinsからジョブを構築するとき、jenkinsユーザーがコンテナを構築します。そこに他のものを追加する必要がありますか?

あなたは credentials pluginで資格情報を使用することができ、あなたのJenkinsfileで

答えて

0

// Login to registry 
    withCredentials([usernamePassword(credentialsId: 'YOUR_ID_AD_DEFINED_IN_JENKINS', passwordVariable: 'PASS', usernameVariable: 'USER')]) { 
     sh "docker login --username=$USER --password=$PASS your.registry.here.com" 
    } 

    // Build with correct pom version 
    sh "docker build -t your.registry.here.com/your_image_here/your_image_name:${POM_VERSION} ." 

    // Push 
    sh "docker push your.registry.here.com/your_image_here/your_image_name:${POM_VERSION}" 

    //pull 
    sh "docker pull your.registry.here.com/your_image_here/your_image_name:${POM_VERSION}" 

${POM_VERSION}は自分のコードからわずかリッピングであり、あなたが

のように、あなたも定義する必要がある任意のバージョンofcourseのことができますJenkinsサーバーの資格情報説明はここにありますWorking with jenkins credentials

+0

応答のための@Ivonetに感謝します。どのJenkinsfileを参照していますか?私は自分の設定で特定のjenkinsファイルを持っていません。 – user1555608

+0

ああ、それは私の前提だった、申し訳ありません。それから、私はあなたのプロジェクト内からJenkinsを設定することができます。 – Ivonet

-1

ドッカーのテンプレート構成を確認し、「プール戦略」を「プールしない」を選択します。

関連する問題