【发布时间】:2017-11-27 10:49:13
【问题描述】:
我有一个 .NET Core 2.0 Web api,它在负载均衡器(也是 docker 容器)后面的 Docker 容器上运行。我想通过拥有多个容器(每个客户一个)来扩展 Web api。考虑到这一点,我必须更改配置以分离和抽象客户详细信息,以便我可以为每个客户设置应用程序。这样我就会有appsettings.CustomerA.config、appsettings.CustomerB.config 等。
我的一般 Dockerfile 是:
FROM microsoft/aspnetcore-build AS builder
WORKDIR /app
# copy csproj and restore as distinct layers
COPY ./Project/*.csproj ./
RUN dotnet restore
# copy everything else and build
COPY ./Project ./
RUN dotnet publish -c Release -o out
# build runtime image
FROM microsoft/aspnetcore
WORKDIR /app
COPY --from=builder /app/out ./
ENV ASPNETCORE_ENVIRONMENT Production
ENTRYPOINT ["dotnet", "Project.dll"]
这一切都很好,但我不知道我是否可以有不同的 Dockerfile,每个客户一个我指定客户的位置(不确定这是否是一种好的做法,因为我会将环境与客户混合,但在同时,如果有意义的话,环境是针对给定客户的)或者我是否应该根据客户创建一个不同的配置文件来复制?
我从 Microsoft docker 文档https://docs.docker.com/engine/examples/dotnetcore/#create-a-dockerfile-for-an-aspnet-core-application 中获取了 docker 模板并自己添加了环境。
感谢您的帮助
【问题讨论】:
标签: docker asp.net-core dockerfile