码头工人构建"no such file or directory"错误



RUN adduser -D appUser
RUN mkdir /usr/share/app
RUN mkdir /logs
ADD Function/target/foo.jar /usr/share/app
WORKDIR /usr/share/app
RUN chown -R  appUser /usr/share/app
RUN chown -R  appUser /logs
USER appUser
EXPOSE 8080
ENTRYPOINT ["java", "-jar",  "foo.jar"]`

我有一个奇怪的问题,我似乎无法解决。

我的根文件夹包含两个目录(都有子目录("Demo/Dockerfile"和">Function/target/foo.jar">

我的 Dockerfile 中有一个复制命令,上面写着

COPY Function/target/foo.bar /usr/share/app

但是当我从根文件夹运行docker build -f Demo/Dockerfile时,出现错误

stat /var/lib/docker/tmp/docker-builder238823934/Function/target/foo.jar: no such file or directory

我觉得这有点奇怪,因为当我编辑复制命令以读取COPY /target/foo.bar /usr/share/app然后我cd到函数目录并运行docker build -f ../Demo/Dockerfile

它成功构建,或者如果我编辑 Dockerfile 以读取COPY foo.bar /usr/share/app然后 cd 到目标目录并运行docker build -f ../../Demo/Dockerfile,这也有效。

这种行为有解释吗?

这就是我的dockerignore文件的样子


!**/Dockerfile

!DockerServiceDescription/**

!Function/target/*.war

!server.xml

!tomcat-users.xml

Docker 仅使用上下文目录和子目录,出于安全原因不允许在外部使用任何文件。

您应该使用"."左右向docker显示上下文目录:

cd myproject
docker build -f Demo/Dockerfile . 

相关内容

最新更新