错误的ERR!缺少脚本:使用Docker启动错误
当运行docker-compose
来启动我的应用程序时,尽管指定了启动脚本,但我得到了npm ERR! missing script: start
。
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件事对我来说没有意义:
- 使用Dockerfile启动应用程序:如果缺少启动脚本确实是问题,那么这不应该也会失败吗?
- 如上所示,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 app
和docker-compose up
我是新手,所以可能会遗漏一些东西,但现在有点卡住了。
回答如下:您可以尝试删除卷部分- ./:/app
看起来/ app是在容器中创建的,但随后您将主机目录挂载到/ app,从而将原始/ app隐藏在容器中。
错误的ERR!缺少脚本:使用Docker启动错误
当运行docker-compose
来启动我的应用程序时,尽管指定了启动脚本,但我得到了npm ERR! missing script: start
。
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件事对我来说没有意义:
- 使用Dockerfile启动应用程序:如果缺少启动脚本确实是问题,那么这不应该也会失败吗?
- 如上所示,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 app
和docker-compose up
我是新手,所以可能会遗漏一些东西,但现在有点卡住了。
回答如下:您可以尝试删除卷部分- ./:/app
看起来/ app是在容器中创建的,但随后您将主机目录挂载到/ app,从而将原始/ app隐藏在容器中。