Docker运行导致FileNotFound错误,即使文件确实存在



我使用Java项目构建了一个docker容器,没有任何问题。

$docker build -t myproj .

Dockerfile包含项目运行所需的参数。其中之一是输入文件。输入文件为:

/home/user/myproj/files/input.csv
以下是Dockerfile中的行在/home/user/myproj为其中一个项目参数设置变量。
ENV INPUT_FILE /home/user/myproj/files/input.csv
...
export INPUT_FILE=/home/user/myproj/files/input.csv

然而,当我运行Java代码时,我得到错误消息:

$ docker run myproj
FileNotFoundException: /home/user/myproj/files/input.csv does not exist

然而当我执行ls -l/home/user/myproject/file/input.csv时该文件显示为存在。有人知道为什么项目声称文件不存在,而实际上它存在,并且参数传递正确?我是Docker的新手,完全被难住了。

默认情况下,Docker容器没有访问主机文件系统的权限。

假设您在构建时复制了源代码,或者卷挂载了它,那么您可能也必须对配置文件执行此操作。

https://docs.docker.com/engine/reference/builder/副本检查文件的RW权限,如果您没有以root

的身份运行该进程如果你有一个Dockerfile,它会很方便地添加到post(当然有敏感信息编辑)

最新更新