高级Docker和Dockerfile卷/书写理解

我正在开发一个Maven项目,并在这个项目中使用Junit进行testing。 我是新来的docker,我想写一个Dockerfile,生成一个图像,创build一个容器,运行时,执行testing,并输出在target/failsafe-reportsfind的XML结果(Maven插件的输出文件夹总结了Junittesting的结果)。 我一直在尝试使用像Dockerfile参考和pipe理容器中的数据的链接。 我的导师编写了一个使用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来实现这一点的命令行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中可以自动完成多less工作? 在我使用和运行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构build它docker build . -t imageName docker build . -t imageName

并使用docker run -it --rm --name test-container -v "$PWD":/usr/local/tests -v /Users/theUser/.m2:/root/.m2 imageName创build容器docker run -it --rm --name test-container -v "$PWD":/usr/local/tests -v /Users/theUser/.m2:/root/.m2 imageName

这似乎运行我的testing,但不写出我的本地文件系统的结果。 docker和Dockerfiles我缺less什么概念?

尝试运行只是:

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

然后检查你的主机的当前文件夹(pwd)是输出是否被创build。

如果没有,然后进入容器通过调出一个shell使用:

 docker exec -it test-container sh 

现在,您应该在提示符下,尝试运行ls -l或环顾四周以find是否在容器内创build输出。 如果没有生成输出文件,这应该给你提供什么卷装入或修复过程本身的线索。