【发布时间】:2018-03-05 09:28:01
【问题描述】:
我决定使用 Docker 来部署我们的项目,但是我们很难配置 docker 支持。 解决方案本身包含多个项目(准确地说是 14 个),其中一个构建 .exe 文件。我已经为这个项目添加了 docker 支持,所以它包含 Dockerfile 和 Dockerignore。解决方案是 Web 应用程序的后端,因此代码中没有 GUI。
问题是,当我构建并运行 Docker 容器时,它失败了,因为代码中存在对另一个项目的路径引用,该路径没有被 docker 复制到容器中。
var webAppStartup = new WebAppStartup(new
AutofacDependencyContainerFactory().Create(AddDependencies),
new HostingEnvironment
{
EnvironmentName = EnvironmentName.Development
},
Path.GetFullPath(@"../MyOtherProject/"));
我尝试通过将文件移动到目录树的上一级来使用 Dockerfile 复制两个项目,但是如果我尝试复制不在 dockerfile 的直接上下文中的内容,Docker 会抛出一个错误,指出我只能在构建上下文中复制文件。
FROM microsoft/dotnet-framework:4.7.1-windowsservercore-ltsc2016
ARG source
WORKDIR /app
COPY ${source:-MyProject/obj/Docker/publish} .
COPY ${source:-MyOtherProject/obj/Docker/publish} .
ENTRYPOINT ["C:\\app\\MyProject.exe"]
如何将多个项目(或整个解决方案?)复制到 docker 容器中,或者是否有解决此类问题的方法?我对 Docker 完全陌生,我对 Docker 如何构建和运行镜像和容器的了解充其量只是肤浅的。
【问题讨论】:
标签: c# visual-studio docker