我正在开发一个maven项目并在此项目中使用Junit运行测试。我是新来的码头工人,我正在尝试编写一个Dockerfile来生成一个图像,该图像创建一个容器,在运行时执行测试并输出target/failsafe-reports
中的XML结果(Maven插件的输出文件夹,其中汇总了Junit测试)。我一直在尝试使用链接,如Dockerfile Reference和Manage 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
写了一条可以实现这个目标的线。高级Docker和Dockerfile卷/写入理解
上面的行在我的项目的根目录中(在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
容器这似乎运行我的测试,但不写出来的结果在我的本地文件系统。我缺少什么Docker和Dockerfiles的概念?
编辑我的dockerfile是什么,我已经将问题缩小到处理写权限的问题,因为我的本地目标文件夹已从我的运行命令更改,但目标文件夹中的所有内容都未更改(在测试期间运行,目标中的文件夹被制作并销毁) – littlespice3