2017-05-09 5 views
2

私はDocker Pipeline Pluginバージョン1.10を使用しています。 私は自分のJenkinsをコンテナにインストールしました。私はDockerデーモンを実行するリモートサーバーを持っています。デーモンは、JenkinsマシンからTCP経由で到達可能です(テスト済み)。 DockerデーモンでTLSセキュリティを無効にしました。 docker.withServer(...)ステップを動作させることができません。 私は単純に(私が正しいんだ場合、これは有効なパイプラインの内容である)Jenkinsfileに以下の内容を置く基本的なテストとして:script.sh:パイプラインは、私はこのエラーを取得する実行Jenkinsパイプライン:docker.withServer(...)はリモートサーバー上でドッカーコマンドを実行しません

docker.withServer('tcp://my.docker.host:2345') { 
    def myImage = docker.build('myImage') 
} 

が行2:docker:コマンドが見つかりません dockerコマンドは、リモートDockerデーモンではなく、ローカルで実行しようとしています(ローカルにインストールされたdockerコマンドはありません)。

何か不足していますか?リモートサーバーでDockerコマンドを実行しようとすると、dockerコマンドをローカルにインストールする必要がありますか?

答えて

1

あなたはhttps://github.com/jenkinsci(ドキュメントhere

+0

'withDockerServer(..)は' [ '' withServer(...)]によって呼び出され

withDockerServer('tcp://my.docker.host:2345') { ..... } 

を試してみました/docker-workflow-plugin/blob/master/src/main/resources/org/jenkinsci/plugins/docker/workflow/Docker.groovy#L44)関数なので、直接呼び出すと何も変わらないと思います。 – stour

+1

実際、私が[Docker.groovy](https://github.com/jenkinsci/docker-workflow-plugin/blob/master/src/main/resources/org/jenkinsci/plugins/docker/workflow)で見たことから/Docker.groovy)ドッカーコマンドは、エージェントにインストールされている_docker_コマンドを使用して直接実行されるようです。ですから、 'withServer( 'tcp://my.docker.host:2345')'を使うと '-H 'tcp://my.docker.host:2345''オプションを実行するコマンドに追加するだけです。リモートサーバー上でドッカーコマンドを実行したいときには、エージェントにドッカーをインストールする必要があります。 – stour

+0

Web上で誤解を招いていることの多くが見つかりました。 2017年8月現在、私はJenkinsでドッカーを得ることができませんでした:ドッキングステーションをコンテナに直接取り付けることなく作業しています。最終的に、私はこのガイドに従いました:http://verbally.flimzy.com/installing-docker-1-12-debian-9-stretch/ docker 12を公式/コミュニティ管理コンテナにhttps://github.comでインストールする/jenkinsci/docker/blob/master/README.md。 その後、私は 'withDockerServer'を使用して、他のサーバー上のドッカーに呼び出すことができました。 – Cognitiaclaeves

関連する問題