最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

错误的ERR!缺少脚本:使用Docker启动错误

IT培训 admin 4浏览 0评论

错误的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件事对我来说没有意义:

  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是在容器中创建的,但随后您将主机目录挂载到/ 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件事对我来说没有意义:

  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是在容器中创建的,但随后您将主机目录挂载到/ app,从而将原始/ app隐藏在容器中。

发布评论

评论列表 (0)

  1. 暂无评论