如何在Windowsservercore Docker容器中安装dotnetcore

5
我有一个C++应用程序,它通过ASP.NET Core应用程序运行。C++应用程序基于x86,因此无法在aspnetcore:2.0-nanoserver映像中运行。
我了解到nanoserver容器支持x64应用程序。由于我的C++应用程序依赖于x86库,因此我无法构建它。
所以我使用windowsservercore映像,它支持x86和x64应用程序。我在容器命令行中测试了我的C++应用程序,并且它运行良好。
但是这个映像没有安装dotnetcore,请告诉我如何在windowsservercore容器中安装dotnetcore。请向我推荐带有dotnetcore的windowsservercore映像。
1个回答

7
如果您已经在桌面上安装并成功运行了Docker,那么创建自己的docker镜像来安装dotnetcore到windows server镜像并不难。 类似下面这样的内容应该可以满足您的需求:
FROM microsoft/iis:windowsservercore
COPY dotnet-runtime-2.0.4-win-x64.exe C:\
RUN C:\dotnet-runtime-2.0.4-win-x64.exe /quiet /install

将此dockerfile解释为:
  1. 从windowsservercore镜像开始
  2. dotnet-runtime-2.0.4-win-x64.exe复制到镜像中
  3. 运行它。
  4. 将结果保存为我的docker镜像。
为使其工作,您应该: 值得花费一小时时间学习如何制作Dockerfiles。

尽管您的实现很直接,但从自动化的角度来看,它需要在构建代理上运行exe文件,这是不太方便的。您是否考虑过安装Chocolatey,然后进行.NET Core的Chocolately安装呢? - Tom Atwood
1
我有点失去了对Chocolatey的热情 - 我认为我的构建自动化方法是,在Dockerfile中添加一行 -- RUN curl https://.../dotnet-runtime-2.0.4-win-x64.exe - Chris F Carroll
这就是我一直在寻找的。使用 dotnet-runtime-2.0.4-win-x64.exe 进行复制会导致 COPY 命令失败。通过删除破折号和点来重命名它,它将可以正常工作。 - Jeyara

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接