2017-09-20 9 views
0

私は、作業中のJenkinsパイプラインをagent {any}と定義しています。Jenkinsは、常に宣言型パイプラインエージェント定義からドッカーイメージを取得します。

しかし、私はドッカー画像でテストを実行したいと思っています。文書によると、私は次のようにそれを行うことができます。

pipeline { 
    agent { 
     docker { image 'centos/python-27-centos7:latest' } 
    } 
    stages { 
     ... 
    } 
} 

問題はジェンキンスの私のインスタンスがオフラインで、プロジェクトを実行しているときに、この構成では、それはdocker pullにイメージをしようとすることです。

しかし、私はdocker imagesに見える(ドッキングウィンドウにロードされたCentOSの/のpython-27イメージを持っており、それがdocker run -i -t centos/python-27-centos7 /bin/bash

で実行することができますが、それはしようとしないので、私はジェンキンスのエージェントを設定することができます任意の方法はありますpullドッカーハブからの画像?

答えて

1

ドッカーファイルエージェントを使用できます。イメージを構築するために必要なものがすべてローカルであれば、オンラインにする必要はありません。

pipeline { 
agent { 
    dockerfile { 
    filename "someOtherDockerfile" 
    label "docker-nodes" 
    args "-v /tmp:/tmp" 
    } 
} 
stages { 
    ... 
} 

他のオプションでプライベートドッカーレジストリが設定されている可能性があります。 https://docs.docker.com/registry/deploying/

+0

ありがとう、Dockerfileはうまくいきました。 – eballes

0

にあなたは私たち兄弟代わりネストされたコンテナ画像の。すなわち-v /var/run/docker.sock:/var/run/docker.sock経由ジェンキンスコンテナにドッキングウィンドウデーモンソケットのボリュームをマウントするようにしてください。この方法で、あなたはアクセスを取得する必要があります利用可能な画像にあなたのホストシステム上で。

+1

あなたはドッキングウィンドウソケットをマウントすることができ、まだ エージェント{ ドッキングウィンドウ{ 画像を使用:「-v /var/run/docker.sock:/var/ 引数 'CentOSの/のpython-27-centos7最新' をrun/docker.sock " } } – CandiedCode

関連する問題