我正在尝试根据文章将asp.net核心应用程序打包到docker容器中,一切正常,但是有一个难以理解的时刻。
.NET Core 2.0 的初始配置不允许您立即使用 docker build 命令构建映像。它被配置为从上一级目录运行 docker-compose 文件。为了使构建成功,可以将 Dockerfile 转换为类似的形式:
我所做的只是删除了额外的 DockerServiceDemo 目录。
我将 2.2 项目容器化,我有一个不同的目录结构 - 但是,工作室生成器也为我创建了一个具有相同额外结构的 Dockerfile,我还必须从代码中删除这个额外的目录。
不那么火爆,什么动作,但毕竟这其中的某种逻辑是微软开发者布下的?
为什么需要它?为什么要从更高的目录运行 docker-compose?
docker-compose 是一个编排器,旨在支持多种服务。因此,它可以引用多个项目,以及多个 docker 文件。
尝试在同一个解决方案中创建两个项目并在两者上调用 Add Container Orchestrator Support / Docker Compose。获取以下布局:
在这种情况下,解决方案文件夹将用作两个项目的上下文:
因为 它们可能依赖于解决方案中的其他项目,并且这些项目的源代码必须在构建容器中可用。