繁体   English   中英

docker-compose npm 错误! 缺少脚本:开始

[英]docker-compose npm ERR! missing script: start

我正在尝试使用 docker-compose 启动多个服务,但我得到了

npm ERR! missing script: start

当我运行 docker-compose up 命令时在我的控制台中

注意我可以使用 docker run 命令单独启动每个服务。

下面是我的 docker-compose.yml 文件的副本

 version: '3.4' services: clientservice: image: clientapplication build: context: . dockerfile: ./client/Dockerfile environment: NODE_ENV: production ports: - "3000:3000" networks: - blogmicroservice commentservice: image: commentsservice build: context: . dockerfile: ./comments/Dockerfile environment: NODE_ENV: production ports: - "4001:4001" networks: - blogmicroservice moderationservice: image: moderationservice build: context: . dockerfile: ./moderation/Dockerfile environment: NODE_ENV: production ports: - "4003:4003" networks: - blogmicroservice postservice: image: postservice build: context: . dockerfile: ./posts/Dockerfile environment: NODE_ENV: production ports: - "4000:4000" networks: - blogmicroservice eventbusservice: image: eventbus build: context: . dockerfile: ./event-bus/Dockerfile environment: NODE_ENV: production ports: - "4005:4005" networks: - blogmicroservice queryservice: image: queryservice build: context: . dockerfile: ./query/Dockerfile environment: NODE_ENV: production ports: - "4002:4002" networks: - blogmicroservice networks: blogmicroservice: driver: bridge

单个服务的 docker 文件示例

 FROM node:12.18-alpine ENV NODE_ENV=production WORKDIR /usr/src/app COPY ["package.json", "package-lock.json*", "./"] RUN npm install --production --silent COPY . . EXPOSE 4002 CMD ["npm", "start"]

在 docker-compose 文件中,所有服务都使用相同的上下文

build:
  context: .

这意味着所有文件都将在构建时复制到 docker 守护进程。 这是不太可能的情况,因为不同的应用程序不能具有相同的代码库。 如果每个镜像都能正常运行,那么问题可能不在于Dockerfile。 您可以将上下文更改为正确的目录:

build:
  context: ./your-server

请注意,context: provided 中的值是一个相对路径时,它被解释为相对于 Compose 文件的位置。 此目录也是发送到 Docker 守护程序的构建上下文。 . 因此,您甚至可能不需要指定 Dockerfile 位置。

我解决了这个问题 ..docker-compose.yml 中的上下文不合适,将其更新为此,现在启动正常

 version: '3.4' services: clientservice: image: clientapplication build: context: ./client dockerfile: ./Dockerfile environment: NODE_ENV: production ports: - "3000:3000" networks: - blogmicroservice commentservice: image: commentsservice build: context: ./comments dockerfile: ./Dockerfile environment: NODE_ENV: production ports: - "4001:4001" networks: - blogmicroservice moderationservice: image: moderationservice build: context: ./moderation dockerfile: ./Dockerfile environment: NODE_ENV: production ports: - "4003:4003" networks: - blogmicroservice postservice: image: postservice build: context: ./posts dockerfile: ./Dockerfile environment: NODE_ENV: production ports: - "4000:4000" networks: - blogmicroservice eventbusservice: image: eventbus build: context: ./event-bus dockerfile: ./Dockerfile environment: NODE_ENV: production ports: - "4005:4005" networks: - blogmicroservice queryservice: image: queryservice build: context: ./query dockerfile: ./Dockerfile environment: NODE_ENV: production ports: - "4002:4002" networks: - blogmicroservice networks: blogmicroservice: driver: bridge

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM