c# - 如何将类库引用包含到 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"]
解决方案
您需要将 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/
推荐阅读
- python - 在python的条形图中将名称放在条形图中
- javascript - 从Angular中的异步函数解析数据时的空白图表
- c++ - 在这种情况下,C++ 标准是否保证模板实例化点?
- javascript - Nginx 音频文件 (wav/ogg/mp3) 不工作
- c# - C#如何检查代理服务器是否工作?
- javascript - VueJS中对象的过滤值
- python - Python检查字典中的列表是否满足两个条件
- python - 在单个时代向前或向后传递或两者中真正发生了什么?
- javascript - 为什么取消选择不适用于可选择和可拖动的多个项目
- javascript - 无法在另一个组件内调用路由器出口组件