首页 > 解决方案 > Docker 文件没有这样的文件或目录 - 绝对路径问题

问题描述

写作是因为我对 Docker File 进程有一个奇怪的问题

问题与 Docker 文件上下文有关。据我了解,我可以从 Dockerfiles 访问的目录上下文是一个目录向上和一个目录向下

示例目录树

A - B - C - D - E

如果我的 docketfile 在 C 上,我可以访问 BD 但我无法访问 AE

我有问题,因为这是我的情况

我的 Docker 文件在 C 上,我需要从 BDE 访问文件,我真的不知道该怎么做

我需要访问它,因为我的目标 jar 在 E 上并且我需要在这个文件中添加一个以使用 Spring Dev Tools 实现 docket 热部署

像在 Docker 上的东西

ADD .\D\E\jar.file jar.file ENtrypoint xxx 公开 xxx

而且我仍然需要访问 B 来获取其他一些文件。

清楚吗?

对不起,我知道很奇怪

标签: filedockerdirectorydockerfile

解决方案


如果您可以做某事,这并不意味着它是正确的,或者如果不推荐某事,则意味着可能会出现问题。

如果您阅读了一般指南和建议,它会建议将事物保留在上下文中,那么为什么需要从不同的驱动器复制事物?顺便说一句,在 Linux 中这是不可能的,因为 docker 需要从上下文中复制,所以最好将你的 jar 文件保存在 dockerfile 上下文中。

了解构建上下文

当您发出 docker build 命令时,当前工作目录称为构建上下文。默认情况下,假定 Dockerfile 位于此处,但您可以使用文件标志 (-f) 指定不同的位置。无论 Dockerfile 实际位于何处,当前目录中文件和目录的所有递归内容都会作为构建上下文发送到 Docker 守护进程。


推荐阅读