【问题标题】:Docker .net core 3.0 preview 3 (web api + angular) on os Xos X 上的 Docker .net core 3.0 preview 3 (web api + angular)
【发布时间】:2019-08-28 09:07:09
【问题描述】:

我正在尝试在 osx 上对 .net core 3.0(预览版 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?)

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

(对不起,我的英语不好)

有人有想法吗?

谢谢 克劳德

【问题讨论】:

  • 你可以在没有 docker 的情况下将它作为独立项目运行吗?对我来说,这听起来像是一个编译器错误,你安装了Microsoft.Extensions.Hosting nuget 包吗?
  • Microsoft.Extensions.Hosting 未在 .csproj 文件中引用。但是是的,它作为独立项目编译和运行。我试图添加包,但它没有任何改变。相同的行为:在构建 docker 映像时,它作为独立的和相同的编译错误工作。
  • 我也有同样的问题。添加“Microsoft.Extensions.Hosting”包后,错误仍然存​​在。
  • 你在项目中使用过IWebHostEnvironment吗?我在Docker for windows中用内置模板做了一个测试,它工作正常,你能验证一下windows环境中是否存在这个问题吗?

标签: macos docker asp.net-web-api asp.net-core


【解决方案1】:

将您的 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"]

【讨论】:

  • 感谢您的帮助,流程更进一步。但后来它失败了,因为该项目包含一个角度部分,并且“npm install”无法在容器中运行。我现在正在尝试使用以下解决方案alakbarv.azurewebsites.net/2019/01/11/… 来分离 dotnet 构建和角度编译。
  • @AndyL 有没有地方可以参考默认情况下不包含切换到不同图像提供程序的功能?
猜你喜欢
  • 2020-04-15
  • 1970-01-01
  • 2020-03-09
  • 1970-01-01
  • 2020-01-26
  • 1970-01-01
  • 2020-03-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多