如何在Docker上安装Node.js?(Windows容器)

时间:2020-08-15 18:43:11

标签: node.js docker

我刚刚创建了我的spring boot应用程序的docker映像,并且实现了一些需要nodejs的功能。我搜索并尝试了各种方法,但无法弄清楚如何使node命令可以在Docker上运行。

我已将节点拉入Docker。

docker pull node

这是我的Dockerfile

FROM openjdk:8-jre 
EXPOSE 8080
ADD target/testdemo-1.0.0-BUILD-SNAPSHOT.war /testdemo-1.0.0-BUILD-SNAPSHOT.war
ENTRYPOINT ["java", "-jar", "/testdemo-1.1.0-BUILD-SNAPSHOT.war"]

由于内存问题,我在切换到Linux容器时遇到了问题,所以请告诉我如何在Windows容器上安装nodejs。我刚刚启动Docker,所以请对我轻松一点。

谢谢。

编辑 我将此行添加到了Dockerfile

RUN msiexec.exe /a https://nodejs.org/dist/v12.18.3/node-v12.18.3-x64.msi /quiet

在构建docker映像时,出现此错误。

Step 2/6 : RUN msiexec.exe /a https://nodejs.org/dist/v12.18.3/node-v12.18.3-x64.msi /quiet
 ---> Running in 3b025a7238f2
T h i s   i n s t a l l a t i o n   p a c k a g e   c o u l d   n o t   b e   o p e n e d .     
V e r i f y   t h a t   t h e   p a c k a g e   e x i s t s   a n d   t h a t   y o u   c a n   a c c e s s   i t ,  
 o r   c o n t a c t   t h e   a p p l i c a t i o n   v e n d o r   t o   v e

构建docker映像毕竟已经成功完成,但是如果我的Spring Boot应用程序尝试使用node命令,我仍然会收到“'node'未被识别为内部或外部命令,...”错误。

2 个答案:

答案 0 :(得分:1)

虽然Marek的答案可能行得通;请确保您使用最新版本的节点,因为节点8正式终止。

您还可以将安装命令添加到Dockerfile中,这样,您的应用程序在启动Docker容器时便可以实际运行:

FROM openjdk:8-jre 
RUN msiexec.exe /a https://nodejs.org/dist/v12.18.3/node-v12.18.3-x64.msi /quiet
EXPOSE 8080
ADD target/testdemo-1.0.0-BUILD-SNAPSHOT.war /testdemo-1.0.0-BUILD-SNAPSHOT.war
ENTRYPOINT ["java", "-jar", "/testdemo-1.1.0-BUILD-SNAPSHOT.war"]

答案 1 :(得分:0)

您尚未将节点拉入Docker 。通过执行docker pull node,您实际上是从dockerhub(https://hub.docker.com/_/node/)下载官方节点映像。

您实际上要做的实际上是在Docker容器内拉节点。一旦进入Windows容器,最简单的方法就是从命令行进行操作:

msiexec.exe /a https://nodejs.org/dist/v8.3.0/node-v8.3.0-x64.msi /quiet

让我知道它是否有效。