.net - 在 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"]
错误:失败
- dotnetfx(退出 -1073741502)- 运行“C:\ProgramData\chocolatey\lib\dotnetfx\tools\ChocolateyInstall.ps1”时出错。有关详细信息,请参阅日志。
- visualstudio2019buildtools(退出 -1073741502) - 运行“C:\ProgramData\chocolatey\lib\visualstudio2019buildtools\tools\ChocolateyInstall.ps1”时出错。有关详细信息,请参阅日志。
这是否意味着需要重新启动?
解决方案
使用基于 Windows Server Core 的.NET Framework Runtime的 Microsoft 的.NET Framework SDK ( Dockerfile ) 映像。
图片包括:
- .NET 框架运行时
- Visual Studio 构建工具
- Visual Studio 测试代理
- NuGet CLI
- .NET Framework 目标包
- ASP.NET Web 目标
推荐阅读
- java - 在 Spring Boot 中成功身份验证后未生成 JWT 令牌
- python - 在 CMD 中键入 python 打开 Microsoft 商店下载 Python 3.8
- javascript - 如何在 React 中将 componentWillReceiveProps 更改/更新为 getDerivedStateFromProps?
- c - 尝试导入标头时 C 中体系结构 x86_64 的未定义符号
- c++ - 在类函数中初始化外部范围变量
- python - 绘制多标签分类 Python 的混淆矩阵
- javascript - 使我的网页与浏览器兼容
- javascript - 对象数组更新逻辑不起作用
- javascript - 通过嵌套数组获取价格总和乘以数量
- http - 为什么 curl 发送 Proxy-Connection 标头,即使 RFC 似乎不鼓励它?