首页 > 解决方案 > 如何将类库引用包含到 docker 文件中

问题描述

我正在尝试为 .net 核心应用程序构建 docker 文件,每当我尝试构建 docker 时,该应用程序都会引用类库,但我遇到了错误。

由于找不到项目而跳过项目

下面是我正在使用的 docker 文件

FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
WORKDIR /app

# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore

# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out

# Build runtime image
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "testapp.dll"]

标签: c#dockerasp.net-coredockerfile

解决方案


您需要将 Dockerfile 移至解决方案级别,并使用 [Folder]/[Project].csproj 引用项目。这是我的 Dockerfile(位于解决方案级别):

FROM mcr.microsoft.com/dotnet/aspnet:3.1 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/sdk:3.1 AS build
WORKDIR /src
COPY ["SumApi/SumApi.csproj", "SumApi/"]
COPY ["Shared/Shared.csproj", "Shared/"]
RUN dotnet restore "SumApi/SumApi.csproj"
COPY . .
WORKDIR "/src/SumApi"
RUN dotnet build "SumApi.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "SumApi.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app`enter code here`
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "SumApi.dll"]

从这里学到的:https ://imranarshad.com/dockerize-net-core-web-app-with-dependent-class-library/


推荐阅读