首页 > 解决方案 > os X 上的 Docker .net core 3.0 preview 3 (web api + angular)

问题描述

我正在尝试在 osx 上对 .net core 3.0 (preview 3) web api + angular 应用程序进行 dockerize。

我有以下 Dockerfile。

FROM microsoft/dotnet:3.0-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
FROM microsoft/dotnet:3.0-sdk AS build
WORKDIR /src
COPY ["./HelloWorldApp.csproj", "."]
RUN dotnet restore "HelloWorldApp.csproj"
COPY . .
RUN dotnet build "HelloWorldApp.csproj" -c Release -o /app
FROM build AS publish
RUN dotnet publish "HelloWorldApp.csproj" -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "HelloWorldApp.dll"]

构建映像时,出现以下错误消息

error CS0246: The type or namespace name 'IWebHostEnvironment' could not be found (are you missing a using directive or an assembly reference?)

注意)如果不使用 docker,应用程序将编译并运行。

(对不起我的英语不好)

有人有想法吗?

谢谢克劳德

标签: macosdockerasp.net-web-apiasp.net-core

解决方案


将您更新Dockerfile到以下内容应该可以

FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-stretch-slim AS base
WORKDIR /app
EXPOSE 80

FROM mcr.microsoft.com/dotnet/core/sdk:3.0-stretch AS build
WORKDIR /src
COPY ["./HelloWorldApp.csproj", "."]
RUN dotnet restore "HelloWorldApp.csproj"
COPY . .
RUN dotnet build "HelloWorldApp.csproj" -c Release -o /app

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

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "HelloWorldApp.dll"]

推荐阅读