首页 > 解决方案 > 在 Dockerfile 中使用 Dotnet 和 MSBuild 工具

问题描述

我正在尝试在 dockerfile 中构建一个 ASP.net MVC 项目,以便在容器中运行。

我尝试在不同的 dockerfile 中同时使用 dotnet 映像和 servercore 映像,然后使用巧克力安装另一个丢失的包并尝试使用 msbuild 构建,但我被卡住了。

FROM microsoft/windowsservercore:10.0.14393.1480
SHELL ["powershell", "-Command", "$ErrorActionPreference='Stop'; $ProgressPreference='SilentlyContinue';"]
WORKDIR /appdir
EXPOSE 80
EXPOSE 443

COPY . /appdir/
COPY /ExFin.Web/packages.config /appdir/

ENV chocolateyUseWindowsCompression 'true'
RUN Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex
RUN choco install visualstudio2019buildtools -y;
RUN choco install dotnet4.5.2 -Force -y;
RUN choco install nuget.commandline --pre 

ENV NUGET_PATH "C:\Chocolatey\lib\NuGet.CommandLine.3.5.0\tools"
ENV MSBUILD_PATH "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\15.0\Bin"

RUN $env:PATH = $env:NUGET_PATH + ';' + $env:MSBUILD_PATH + ';' + $env:PATH; `
RUN [Environment]::SetEnvironmentVariable('PATH', $env:PATH, [EnvironmentVariableTarget]::Machine)

RUN nuget.exe restore packages.config -PackagesDirectory /appdir/packages/
RUN ["C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\15.0\Bin\msbuild.exe", "C:/appdir/ExFin.Web/ExFin.Web.csproj"]

错误:失败

这是否意味着需要重新启动?

标签: .netdocker

解决方案


使用基于 Windows Server Core 的.NET Framework Runtime的 Microsoft 的.NET Framework SDK ( Dockerfile ) 映像。

图片包括:

  1. .NET 框架运行时
  2. Visual Studio 构建工具
  3. Visual Studio 测试代理
  4. NuGet CLI
  5. .NET Framework 目标包
  6. ASP.NET Web 目标

推荐阅读