Spring boot 使用以下dockerfile生成docker映像时出错

Spring boot 使用以下dockerfile生成docker映像时出错,spring-boot,docker,dockerfile,Spring Boot,Docker,Dockerfile,Dockerfile 错误: 一,。ARG DEPENDENCY=target/DEPENDENCY->这不起作用,这就是为什么我没有对Dockerfile中的其他复制行进行相同的更改 二,。我创建了一个目录target/dependency/BOOT-INF/lib,其中仍然包含所有依赖项,它错误地说:没有这样的文件或目录 请提供一些解决方案,并对Dockerfile进行适当解释。任何关于将Springboot应用程序与Postgres DB对接的建议都是非常受欢迎的 更新的Dockerfil

Dockerfile

错误:

一,。ARG DEPENDENCY=target/DEPENDENCY->这不起作用,这就是为什么我没有对Dockerfile中的其他复制行进行相同的更改

二,。我创建了一个目录target/dependency/BOOT-INF/lib,其中仍然包含所有依赖项,它错误地说:没有这样的文件或目录

请提供一些解决方案,并对Dockerfile进行适当解释。任何关于将Springboot应用程序与Postgres DB对接的建议都是非常受欢迎的

更新的Dockerfile:

更新错误:


容器中的/app文件夹是否已存在?如果没有,请先创建一个,然后再将文件复制到其中。

容器中的/app文件夹是否已经存在?如果没有,只需先创建一个,然后再将文件复制到其中。

如注释中所述,复制命令基于生成上下文工作,因此这就是生成为目标在生成上下文之外的原因


如果Dockerfile位于目标文件夹内,则复制命令应为

copy dependency/BOOT-INF/lin /home/app/

正如在注释中所讨论的,copy命令是基于构建上下文工作的,这就是为什么构建为目标在构建上下文之外的原因


如果Dockerfile位于目标文件夹内,则复制命令应为

copy dependency/BOOT-INF/lin /home/app/

事实上,问题的原因并不复杂:

COPY ./target/dependency/BOOT-INF/lib /app/lib
复制失败:stat /var/lib/docker/tmp/docker-builder226394005/target/dependency/BOOT-INF/lib: 没有这样的文件或目录

这是什么意思? 如果这些目录有效地存在于主机上,则意味着目标目录不是构建上下文的直接子目录。 是什么

docker build命令从Dockerfile和 “背景”。构建的上下文是位于 指定的路径或URL。构建过程可以引用任何文件 在上下文中。例如,您的构建可以使用复制指令 在上下文中引用文件

执行:docker build-t myTag.时,上下文是当前目录。 因此,只需将构建上下文调整为目标目录的父目录,它应该是正确的。 例如,布局:

- docker
      - Dockerfile
- src
- target
您应该将上下文保留为基本目录,并以这种方式设置DockerFile路径:

docker build -t myTag -f docker/Dockerfile . 

事实上,问题的原因并不复杂:

COPY ./target/dependency/BOOT-INF/lib /app/lib
复制失败:stat /var/lib/docker/tmp/docker-builder226394005/target/dependency/BOOT-INF/lib: 没有这样的文件或目录

这是什么意思? 如果这些目录有效地存在于主机上,则意味着目标目录不是构建上下文的直接子目录。 是什么

docker build命令从Dockerfile和 “背景”。构建的上下文是位于 指定的路径或URL。构建过程可以引用任何文件 在上下文中。例如,您的构建可以使用复制指令 在上下文中引用文件

执行:docker build-t myTag.时,上下文是当前目录。 因此,只需将构建上下文调整为目标目录的父目录,它应该是正确的。 例如,布局:

- docker
      - Dockerfile
- src
- target
您应该将上下文保留为基本目录,并以这种方式设置DockerFile路径:

docker build -t myTag -f docker/Dockerfile . 

你是如何塑造docker形象的?文件是否存在于Dockerfile的根目录中?或者最好添加目录结构,因为目录路径似乎无效,或者您正在从不同的上下文构建docker映像,如果Dockerfile和目标/依赖项位于同一路径/目录上,则docker build-t映像。应该复制文件/谢谢你,再见。我的Dockerfile作为target/Dockerfile在目标文件夹中,dependency作为target/dependency/BOOT-INF/lib也在目标文件夹中。如果Dockerfile在目标文件夹中,那么复制命令应该是copy dependency/BOOT-INF/lin/home/app/Thank you Adii。它起作用了。如果我从目标文件夹发出build命令,则生成成功-build arg DEPENDENCY=/DEPENDENCY有效。如何构建docker映像?文件是否存在于Dockerfile的根目录中?或者最好添加目录结构,因为目录路径似乎无效,或者您正在从不同的上下文构建docker映像,如果Dockerfile和目标/依赖项位于同一路径/目录上,则docker build-t映像。应该复制文件/谢谢你,再见。我的Dockerfile作为target/Dockerfile在目标文件夹中,dependency作为target/dependency/BOOT-INF/lib也在目标文件夹中。如果Dockerfile在目标文件夹中,那么复制命令应该是copy dependency/BOOT-INF/lin/home/app/Thank you Adii。它起作用了。如果我从目标文件夹发出build命令,则生成成功-build arg DEPENDENCY=/DEPENDENCY成功。感谢您的关注。我已尝试创建文件夹,但错误仍然相同。我已上载更新的Dockerfile,其中包含错误。需要转到我的笔记本电脑上,将完全工作的Dockerfile带到电脑上,以正确帮助您。如果没人想出解决办法,我就
带来最新消息。是的,等待更多有线索的答案。谢谢你,安德烈,谢谢你的关心。我已尝试创建文件夹,但错误仍然相同。我已上载更新的Dockerfile,其中包含错误。需要转到我的笔记本电脑上,将完全工作的Dockerfile带到电脑上,以正确帮助您。如果没有人提出解决方案,我会带上最新消息。是的,等待更多的答案和线索。谢谢你,安德烈。