2016-12-01 6 views
0

DockerコンテナにJenkinsを設定しました。私はビルドを取ることができます。ビルド後、私はWARファイルをホストシステムで動作しているTomcatサーバーに移動したいと思う。ポストビルドタスクでコピーコマンドを追加しました。 Jenkinsはコンテナ内で動作しているため、WARをホストシステムに移動することはできません。ファイルをDockerコンテナからJenkinsのホストシステムに移動

WARファイルをコンテナからホストシステムに移動するにはどうすればよいですか?

ホストパス:/ホーム/テスト/ tomcatに/ webappsに

ジェンキンスコンテナパス:起動時に

+0

ドッカーでJenkinsを実行しているか、ドッカーでビルドジョブを実行していますか?最初の場合、ホストシステム上のファイルをコンテナに置いてそこにコピーしたい場所の親ディレクトリをマップします(コンテナ内のユーザには注意してください)。つまり '-v/home/test// home/test/tomcat/webapps/'にコピーしておくと、post build-stepとしてコピーでき、それは(@ kimy82の回答のように)持続します。 後者の場合、作業領域はJenkinsによってマッピングされるため、ビルド中に作成されたファイルはそのまま残ります。 – Rik

+0

コンテナ内に何かを構築する場合、 'userid:groupid'はコンテナ内のjenkinsサービスユーザのものになります。したがって、ホストシステム上でこれを変更するか、ホストとコンテナで同じものを使用できるようにする必要があります(つまり、ユーザーテストで 'uid:gid'が1001:1001の場合は、ホスト上で 'Permission denied'を防ぐ' uid:gid'と同じ 'welcome.jar'を作成します。 – Rik

+0

私はDockerでJenkinsを実行しており、それを使ってビルドしています。 – Gnana

答えて

0

/var/jenkins/workspace/dev/welcome/target/welcome.war私はvolumneを作成しますjockkinsをdockerに置き、通常のシェルjenkinsコマンドを使ってそこにwarファイルをコピーします。私は通常やります docker run -d -v /var/run/docker.sock:/var/run/docker.sock -p 8080:8080 -p 50000:50000 -v /home/docker:/var/jenkins_home --net="host" --env JAVA_OPS="-Xms1024m -Xmx1024m" --privileged=true axltxl/jenkins-dood

-vオプションは、コンテナとホストの共有フォルダであるvolumneを作成するオプションです。私の場合は、ドッキング用のコンテナの外でジンキンの設定をするために使用します。

+0

Iコンテナとホスト-v/home/test:/ var/jenkins_homeの間のボリュームも実行してください。ビルド後、WARをwebappsフォルダに移動するにはどうしたらいいですか?この1つの解決策を教えてください。 – Gnana

+0

別のボリュームを作成することができます** - v {webappsへのパス} /welcome.war:/var/jenkins/workspace/dev/welcome/target/welcome.war**。うまくいくのはうまくいくだろう。ファイルのボリュームをマウントすることが可能かどうかわからない – kimy82

+0

同じことを試しました。しかし、コンテナの起動中にエラーが発生しました。 – Gnana

関連する問題