私はJockkinsをDockerコンテナで実行しています。ホームディレクトリはホストボリューム内にあり、コンテナの更新が実行されたときにビルド履歴が確実に保持されます。Dockerfileで変更が加えられた場合、Dockerはマウント時にボリュームの内容を更新しますか?
ホームディレクトリに追加のファイルを作成するために、コンテナを更新しました。新しいコンテナを引っ張ると、変更されたファイルが表示されません。
ENV JENKINS_HOME=/var/jenkins_home
RUN mkdir -p ${JENKINS_HOME}/.m2
COPY settings.xml ${JENKINS_HOME}/.m2/settings.xml
RUN chown -R jenkins:jenkins ${JENKINS_HOME}/.m2
VOLUME ["/var/jenkins_home"]
私はこのようなコンテナを実行しています:
docker run -v /host/directory:/var/jenkins_home -p 80:8080 jenkins
私は前回の実行ジェンキンスを持っていたので、ホームディレクトリがすでにホスト上に存在します。新しいコンテナを取り出して実行すると、ファイル.m2/settings.xml
が作成されていないことがわかります。なぜこれはどうですか?基本的には
ディレクトリが正常に構築された場合は、コンテナ内部を監視しようとしましたか?コンテナを正しく再構築してもよろしいですか?ビルドプロセスにエラーがありますか?例えばディレクトリが存在しないためファイルをコピーできないことを確認しますか? – Gabbax0r
'docker build'コマンドは完了まで実行されます。ビルド中にエラーが報告されることはありません。あなたはコンテナの中を見守っていますか? 'docker exec -it jenkins/bin/bash'を実行し、コンテナの中に' .m2'というディレクトリがないことを確認します。 – John
変数dir名なしでcpを試してください。 RUN mkdir /.m2 COPY settings.xml /.m2/settings.xml – Gabbax0r