繁体   English   中英

如何使用 Windows 容器 dotnet/aspnet:6.0 在 Docker 中安装 Node JS?

[英]How to install Node JS in Docker with a Windows Container dotnet/aspnet:6.0?

看起来应该相当简单,但由于 windows 容器正在使用 nano 并且没有 msiexec.exe 来安装软件包,因此在谷歌搜索几个小时后我没有找到一个完善的替代方案。 那么,如何在基于纳米的 windows 容器中最好地执行以下操作?

RUN msiexec.exe /i https://nodejs.org/dist/v18.7.0/node-v18.7.0-x64.msi /quiet

我正在使用什么:

  • Windows Docker 容器
  • dockerfile VS make,它的基础是dotnet/aspnet:6.0,在构建阶段使用dotnet/sdk:6.0

dockerfile 的基础阶段,我想在其中安装节点:

FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
# install node for npm usage
RUN msiexec.exe /i https://nodejs.org/dist/v18.7.0/node-v18.7.0-x64.msi /quiet

对于它的价值,我习惯了基于 Linux 的容器,这是我第一次尝试使用 Windows 的容器。 请纠正我可能说错或歪曲的任何内容。

欢迎来到 Windows 世界::)

在 Windows 上,.Net 有两种风格:.Net 和 .Net Framework。 前者(.Net)以前被称为.Net Core,自从它重命名为.Net以来,它引起了一些混乱。 澄清:

  • .Net 框架是 .Net 仅在 Windows 中可用的遗留框架。
  • .Net(以前称为 .Net Core)在 Windows 和 Linux 上可用。 起初,Windows 上的 .Net 仅在 Nano Server 基础容器镜像上可用。 但是,最近该团队在 Server Core 映像上提供了它,该映像支持更广泛的先决条件,例如 MSIEXEC。

我对您的建议是查看您要在此处使用的图像的可用标签列表: https://mcr.microsoft.com/en-us/product/dotnet/aspnet/tags

另外,请查看 Windows 容器的文档。 Windows 容器有一个特殊性,这是容器主机和容器之间的版本匹配要求。 更多详细信息: https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/version-compatibility?tabs=windows-server-2022%2Cwindows-11-21H2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM