我正在開發一個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