【发布时间】:2021-03-27 17:35:30
【问题描述】:
我正在使用 Jason Taylor 的 Clean Architecture template,我想知道为什么他的 WebUI Dockerfile 是由 Visual Studio 生成的,如下所示。
它将WORKDIR 设置为/src,然后从/src/ProjectDir/Project.csproj 复制每个项目。在这种情况下,WORKDIR 有什么意义?看看WORKDIR "/src/src/WebUI"。为什么/src/src? src 目录只有一个。
FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
ENV ASPNETCORE_URLS=https://+:5001;http://+:5000
WORKDIR /app
EXPOSE 5000
EXPOSE 5001
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
RUN curl -sL https://deb.nodesource.com/setup_12.x | bash -
RUN apt install -y nodejs
WORKDIR /src
COPY ["src/WebUI/WebUI.csproj", "src/WebUI/"]
COPY ["src/Application/Application.csproj", "src/Application/"]
COPY ["src/Domain/Domain.csproj", "src/Domain/"]
COPY ["src/Infrastructure/Infrastructure.csproj", "src/Infrastructure/"]
RUN dotnet restore "src/WebUI/WebUI.csproj"
COPY . .
WORKDIR "/src/src/WebUI"
RUN dotnet build "WebUI.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "WebUI.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "CleanArchitecture.WebUI.dll"]
【问题讨论】:
标签: dockerfile clean-architecture asp.net-core-5.0