npm ERR! 缺less脚本:Docker启动错误

当运行docker-compose启动我的应用程序时,我得到一个npm ERR! missing script: start npm ERR! missing script: start尽pipe指定了启动脚本,但仍启动。

package.json是

 { "name": "myapp", "version": "0.0.0", "private": true, "scripts": { "start": "node ./bin/www" }, "dependencies": { "body-parser": "~1.17.1", "cookie-parser": "~1.4.3", "debug": "~2.6.3", "ejs": "~2.5.6", "express": "~4.15.2", "mongoose": "^4.11.1", "morgan": "~1.8.1", "serve-favicon": "~2.4.2" } } 

和docker-compose.yml是

 version: "2" services: web: build: . volumes: - ./:/app ports: - "3500:3500" 

2件事对我来说没有意义:

  1. 使用Dockerfile启动应用程序的工作原理:如果启动脚本丢失真的是问题,是不是也会失败?
  2. package.json的确有一个启动脚本,你可以在上面看到

不知道是否需要,但Dockerfile是

 FROM node:argon RUN mkdir /app WORKDIR /app COPY package.json /app RUN npm install COPY . /app EXPOSE 3500 ENV PORT 3500 CMD ["npm", "start"] 

编辑:我使用docker run -p 3500:3500 appdocker-compose up

我是新来的,所以可能会失去一些东西,但现在有点卡住了。

您可以尝试删除卷部分- ./:/app
它看起来像/ app是在容器中创build的,但随后你将一个主机目录挂载到/ app,从而隐藏了容器中的原始/ app。