首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在dockerfile中向上导航一个文件夹

如何在dockerfile中向上导航一个文件夹
EN

Stack Overflow用户
提问于 2019-06-13 19:57:39
回答 2查看 7.5K关注 0票数 6

我在构建一个坞映像时遇到了一些困难,因为代码的构造方式。代码是用C#编写的,在解决方案中有很多项目“支持”我想要构建的应用程序。

我的问题是,如果我把dockerfile放到根中,我就可以构建它,没有任何问题,但我不认为这是最佳的方法,因为我们还需要构建一些其他的dockerfile,如果我把它们全部放到根文件夹中,我认为它最终会变得很混乱。

因此,如果我将dockerfile放入应用程序的文件夹中,如何导航到根文件夹以获取所需的文件夹?

我试着用"../“,但从我的观点来看,它似乎行不通。有没有任何方法可以做到这一点,或者在这个场景中什么是最佳实践?

EN

Stack Overflow用户

回答已采纳

发布于 2019-06-13 21:57:20

TL;DR

从根目录运行它:

docker build . -f ./path/to/dockerfile

长话短说:

在码头档,你真的不能上去。

为什么

当停靠守护进程正在构建映像时,它使用两个参数:

  • 你的Dockerfile
  • 上下文

上下文就是您在dockerfile中所称的.。(例如,作为COPY . /app),它们都会影响最终的映像-- dockerfile决定了将发生什么。上下文告诉上的文件应该执行您在该dockerfile中指定的操作。

医生们是这么说的:

构建的上下文是位于指定路径或URL中的一组文件。生成过程可以引用上下文中的任何文件。例如,生成可以使用复制指令引用上下文中的文件。

因此,上下文通常是放置Dockerfile的目录。我的建议是把它留在属于它的地方。将您的dockerfile命名为它们的角色(Dockerfile.devDockerfile.prod等),可以在同一个dir中使用其中的几个。

上下文仍然可以更改:

毕竟,是您指定了上下文。因为docker build命令接受上下文和dockerfile路径。当我跑步时:

docker build .

实际上,我给它的是当前目录的上下文(我省略了dockerfile路径,因此默认为PATH/Dockerfile)

因此,如果您在dockerfiles/Dockerfile.dev中有一个dockerfile,您应该将自己放在您想要的目录中作为上下文,然后运行:

docker build . -f dockerfiles/Dockerfile.dev

同样适用于docker-compose构建部分(您指定了上下文和dockerfile路径)

希望这是合理的。

票数 11
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56587758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档