現在、Jenkinsと組み合わせてDockerを試して、新しいプロジェクトのCI/CDワークフローを合理化しています。私はDocker 1.12をインストールしたMac上で動作します。Jenkins Dockerスレーブでドッカー画像を作成できない
これは私が何をすべきかです:新しいドッカーサーバーを作成するための
- 使用ドッキングウィンドウマシン
- 「しかしをインストール
- そのサーバ上ジェンキンスインスタンスをスピンアップするために、公式ジェンキンスドッカーの画像を使用してください別のDocker Plugin "と" CloudBees Docker Pipeline "プラグインをインストールします。
- この設定でドッカーサーバのIP上記と第三者ドッカーDIND画像tehranian/DIND-ジェンキンススレーブ
を使用して「ドッカークラウド」を追加し、私はこのような非常に単純なパイプラインジョブを実行します:
node('docker') {
docker.image('hseeberger/scala-sbt').inside {
stage 'Checkout'
echo 'We got here!'
}
}
JenkinsはDockerインスタンスを期待どおりスピンアップしてジョブを実行します。基本的なDockerの設定は期待通りに機能しています。
ただし、ジョブ内のDockerコマンドが失敗します。ログ出力は、このようなものになります。私は解決策のために周りの閲覧時に
[Pipeline] node
Still waiting to schedule task
Docker-23ebf3d8dd4f is offline
Running on Docker-23ebf3d8dd4f in /home/jenkins/workspace/docker-test
[Pipeline] {
[Pipeline] sh
[docker-test] Running shell script
+ docker inspect -f . hseeberger/scala-sbt
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
[Pipeline] sh
[docker-test] Running shell script
+ docker pull hseeberger/scala-sbt
Using default tag: latest
Warning: failed to get default registry endpoint from daemon (Cannot connect to the Docker daemon. Is the docker daemon running on this host?). Using system default: https://index.docker.io/v1/
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
は今、通常、ドッカーソケットがボリュームとしてコンテナに提供する必要があると述べているが、それはどちらか動作していないように。
一般的な設定が動作しているようだから、JenkinsのプラグインがDockerのスレーブを最初に起動させるのと同じことをスレーブが単に行う必要はないでしょうか?つまり、DockerサーバーのURLを使用して制御しますか?私はこれが非常に一般的なユースケースであると仮定しているので、Jenkins Dockerの奴隷用のDocker画像がなければなりません。私は何が欠けていますか?
JockkinsによってスピンアップされたDockerコンテナが/var/run/docker.sockにあるように、前述のようにドッカーソケットをマウントすることをお勧めします。 Jenkinsによって作成されたDockerコンテナの手順は、一部のユーザーによって実行されます。このユーザーは、マウントされたDockerソケットにアクセスできますか?例えば、 'docker'グループのユーザですか? – wujek
https://go.cloudbees.com/docs/cloudbees-documentation/cje-user-guide/chapter-docker-workflowに従って、 'node( 'docker')'部分が必要ないとは思いません。 html これで問題は解決しません。同じ問題があります。あなたはそれを修正しましたか? – Stretch