在Microsoft / nanoserver上Docker化Node.js应用程序

我是Docker的新手。 我们有一个基于节点的REST服务,我正在尝试创build一个docker镜像,以便我可以在构build代理上轻松地部署这个服务。 我有CD到我们有服务的package.json文件夹,并添加到docker文件下面。 我在Win 10构build14xxxxx和使用Docker窗口容器。 我需要拉节点图像并将其安装在nanoserver上?

FROM microsoft/nanoserver # Create app directory RUN powershell New-Item -ItemType directory -Path \usr\src\app WORKDIR \usr\src\app # Install app dependencies COPY package.json \usr\src\app RUN npm install # Bundle app source COPY . \usr\src\app EXPOSE 8080 CMD [ "npm", "start" ] 

当我跑步

 docker build -t mycompany/node-engine 

我得到以下错误

 'npm' is not recognized as an internal or external command, operable program or batch file. 

以下是完整的输出

 Sending build context to Docker daemon 24.67 MB Step 1/8 : FROM microsoft/nanoserver ---> a943c29f0046 Step 2/8 : RUN powershell New-Item -ItemType directory -Path \usr\src\app ---> Using cache ---> f1df2109ddd6 Step 3/8 : WORKDIR \usr\src\app ---> Using cache ---> 66d552a76612 Step 4/8 : COPY package.json \usr\src\app ---> Using cache ---> fcf9663854c3 Step 5/8 : RUN npm install ---> Running in b47b47ad1439 'npm' is not recognized as an internal or external command, operable program or batch file. The command 'cmd /S /C npm install' returned a non-zero code: 1 

先谢谢了

在Docker Hub中有一个用于这个目的的图像,你只需要使用build立在nano服务器之上的这个图像:

https://hub.docker.com/r/compulim/nanoserver-node/