高级Docker和Dockerfile卷/书写理解
我正在开发一个Maven项目,并在这个项目中使用Junit进行testing。 我是新来的docker,我想写一个Dockerfile,生成一个图像,创build一个容器,运行时,执行testing,并输出在target/failsafe-reports
find的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输出。 如果没有生成输出文件,这应该给你提供什么卷装入或修复过程本身的线索。