一个npm项目的Dockerfile

我正在尝试为crates.io项目添加一个docker -compose安装程序 。 npm片断的当前文件如下:

FROM node:8.4 ENV npm_config_global true COPY package.json package-lock.json ./ RUN npm install 

这一切都很好,但是当我试图build立它时,它所做的只是:

 Building frontend Step 1/4 : FROM node:8.4 ---> 6f6ffe2a1302 Step 2/4 : ENV npm_config_global true ---> Using cache ---> 868e1aec7aac Step 3/4 : COPY package.json ./ ---> 3846f64854e0 Removing intermediate container a1dea9f3f3a2 Step 4/4 : RUN npm install ---> Running in 18b3f1003133 npm info it worked if it ends with ok npm info using npm@5.3.0 npm info using node@v8.4.0 npm info lifecycle cargo@0.0.0~preinstall: cargo@0.0.0 npm info linkStuff cargo@0.0.0 npm info lifecycle cargo@0.0.0~install: cargo@0.0.0 npm info lifecycle cargo@0.0.0~postinstall: cargo@0.0.0 + cargo@0.0.0 added 1 package in 0.23s npm info ok ---> 6785fa0a2b21 Removing intermediate container 18b3f1003133 Successfully built 6785fa0a2b21 Successfully tagged cratesio_frontend:latest 

所以根本没有安装devDependencies 。 我在这里错过了什么? 还有其他一些参数我应该添加吗?

我已经试着用--only=dev来运行它,它也不起作用。

运行它而不复制package-lock.json也会导致同样的情况:

 Building frontend Step 1/4 : FROM node:8.4 ---> 6f6ffe2a1302 Step 2/4 : ENV npm_config_global true ---> Running in b77c06987f48 ---> f52a6255ea31 Removing intermediate container b77c06987f48 Step 3/4 : COPY package.json ./ ---> 26f4c713399a Removing intermediate container 27d6fe45b3be Step 4/4 : RUN npm install ---> Running in 58d4bd0e8f75 npm info it worked if it ends with ok npm info using npm@5.3.0 npm info using node@v8.4.0 npm info lifecycle cargo@0.0.0~preinstall: cargo@0.0.0 npm info linkStuff cargo@0.0.0 npm info lifecycle cargo@0.0.0~install: cargo@0.0.0 npm info lifecycle cargo@0.0.0~postinstall: cargo@0.0.0 + cargo@0.0.0 added 1 package in 0.207s npm info ok ---> 39f68ccde408 Removing intermediate container 58d4bd0e8f75 Successfully built 39f68ccde408 Successfully tagged cratesio_frontend:latest 

  1. 检查你的package-lock.jsonpackage.json文件的devDependency。 正如我从日志文件中看到的那样,您将cargo包安装为devDependency。

  2. 你的Dockerfile和日志相互矛盾。 请检查您在构build过程中使用的Dockerfile。

详细信息Dockerfile:

  • Dockerfile中的第4行是RUN npm install
  • Dockerfile中的第5行不存在。

详细信息日志:

 Step 4/5 : RUN npm install --only=dev ... Step 5/5 : RUN npm install ...