2017-06-22 4 views
1

私はこのプロジェクトでmavenプロジェクトとJunitを使用してテストを実行しています。私はドッカーには新しく、実行時にテストを実行し、target/failsafe-reports(結果を要約するmavenプラグインの出力フォルダ)にあるXML結果を出力するコンテナを作成する画像を生成するDockerfileを作成しようとしています。 Junitテスト)。私はDockerfile ReferenceManage Data in Containersのようなリンクを使ってこれを試してきました。私の指導者はdocker run -it --rm --name containerName -v "$PWD":/usr/src/tests -v /Users/theUser/.m2:/root/.m2 -w /usr/src/tests maven:3.5-alpine mvn clean verifyを使ってこれを達成する行を書いた。高水準ドッカーとドッカーファイルのボリューム/書き込みの理解

上記の行はプロジェクトのルート(pomとDockerfileがある場所)で呼び出されます。$PWDは私のプロジェクトのルートを参照しています。

私の質問は、この仕事のどれくらいがDockerfileで自動化できるのでしょうか? Dockerfileを使用して実行しようとする私の試みでは、現在のDockerfileを持っているときに書き出されたものは得られませんでした。

FROM maven:3.5-alpine 

COPY ["./", "/usr/local/tests"] 

VOLUME /usr/local/tests/target/failsafe-reports 

ENTRYPOINT mvn -f /usr/local/tests/pom.xml verify 

私は docker build . -t imageName

でそれを構築し、 docker run -it --rm --name test-container -v "$PWD":/usr/local/tests -v /Users/theUser/.m2:/root/.m2 imageName

でコンテナを作成これは私のテストを実行するようだが、私のローカルファイルシステムに結果を書き込みません。ドッカーとドッカーファイルのコンセプトは何ですか?

+0

私のdockerfileが編集されています。ローカルのターゲットフォルダが実行コマンドから変更されているのに、ターゲットフォルダの内容が変更されていないので、テスト中に書き込み権限を扱うものに絞り込んだターゲットのフォルダが作成されて破棄されます) – littlespice3

答えて

0

だけで実行してみましょう:

docker run -d --name test-container -v $PWD:/usr/local/tests -v /Users/theUser/.m2:/root/.m2 imageName 

次に、あなたのホストのローカルカレントフォルダ(PWD)をチェックインは、出力が作成されたです。その後、

ない場合は、使用してシェルを起動してコンテナに入る:

docker exec -it test-container sh 

今、あなたは、プロンプトである必要があり、出力が作成されたかどうかをls -lを実行したり、findどこ&に周りを見してみてください容器の内側にある。それは、出力ファイルを生成しなかった場合には、何をボリュームマウントするか、またはプロセス自体を修正するための手がかりを与えるはずです。

+0

ホストにデータが書き込まれていないが、コンテナ内のデータが変更されているため、ボリューム内のそのデータにアクセスする方法を試行しようとしています。 – littlespice3

+0

はい、 'docker diff test-container'をホストから削除し、変更されたすべてのファイルを表示する必要があります。それでは、 '-v'を使ってそのフォルダをあなたのホスト上の空のフォルダにマウントし、出力データを取得するだけです。 – Anoop

関連する問題