Java 在Docker中装入卷时无法访问jarfile错误

Java 在Docker中装入卷时无法访问jarfile错误,java,docker,jar,docker-volume,webdrivermanager-java,Java,Docker,Jar,Docker Volume,Webdrivermanager Java,我有一个Docker容器,它执行打包为fat jar的Java应用程序(即,随所有依赖项一起提供)。Dockerfile在中是公共的,容器在中是公共的。请注意,我在Dockerfile中使用的是CMD,而不是ENTRYPOINT,因为我需要将一个参数(称为BROWSER)传递给java-jar 当我按如下方式运行Docker容器时,一切正常: $ docker run --rm -e BROWSER=chrome bonigarcia/webdrivermanager:4.1.0 [INFO]

我有一个Docker容器,它执行打包为fat jar的Java应用程序(即,随所有依赖项一起提供)。Dockerfile在中是公共的,容器在中是公共的。请注意,我在Dockerfile中使用的是
CMD
,而不是
ENTRYPOINT
,因为我需要将一个参数(称为
BROWSER
)传递给
java-jar

当我按如下方式运行Docker容器时,一切正常:

$ docker run --rm -e BROWSER=chrome bonigarcia/webdrivermanager:4.1.0
[INFO] Using WebDriverManager to resolve chrome
[DEBUG] Created new resolution cache file at /root/.m2/repository/webdriver/resolution.properties
[DEBUG] Running command on the shell: [google-chrome, --version]
[DEBUG] There was a problem executing command <google-chrome --version> on the shell: Cannot run program "google-chrome" (in directory "."): error=2, No such file or directory
[DEBUG] Result: 
[DEBUG] The driver version for Chrome is unknown ... trying with latest
[DEBUG] Latest version of chromedriver according to https://chromedriver.storage.googleapis.com/LATEST_RELEASE is 84.0.4147.30
[INFO] Reading https://chromedriver.storage.googleapis.com/ to seek chromedriver
[DEBUG] Driver to be downloaded chromedriver 84.0.4147.30
[INFO] Downloading https://chromedriver.storage.googleapis.com/84.0.4147.30/chromedriver_linux64.zip
[INFO] Extracting binary from compressed file chromedriver_linux64.zip
[INFO] Driver location: /wdm/chromedriver

有人知道如何映射我想要的卷并避免此错误吗?

生成映像时,
webdrivermanager-${VERSION}-fat.jar
被复制到docker容器内的
/wdm
目录中。然后,当您使用
-v${PWD}:/wdm
启动容器时,
/wdm
目录被
${PWD}
屏蔽,因此JAR文件不在那里

我猜,您想要实现的是使容器下载的驱动程序可以从主机访问。一个可能的解决方案是将其下载到与放置JAR的目录不同的目录,然后挂载此下载目录

$ docker run --rm -e BROWSER=chrome -v ${PWD}:/wdm bonigarcia/webdrivermanager:4.1.0
Error: Unable to access jarfile webdrivermanager-4.1.0-fat.jar