【问题标题】:Getting error: nodemon not found when running docker-compose出现错误:运行 docker-compose 时找不到 nodemon
【发布时间】:2018-12-25 05:45:08
【问题描述】:

我已经对 node.js 应用程序进行了 docker 化,并创建了一个 docker-compose 文件来与 mongo 一起运行它。我正在使用 docker 进行开发,因此我需要 nodemon。

这是我的 Dockerfile:

FROM node:carbon-alpine

RUN mkdir -p usr/src/app
WORKDIR /usr/src/app

RUN npm install -g nodemon

COPY package*.json /usr/src/app

RUN yarn install

COPY . /usr/src/app

EXPOSE 3000

CMD [ "yarn", "start-local" ]

这里是 docker-compose

version: "3"

services:
  app:
    container_name: app
    restart: always
    build: .
    volumes:
      - .:/usr/src/app
    environment:
      - MONGO_URI=mongodb://mongo:27017/test
    ports:
      - "3000:3000"
    depends_on:
      - mongo
    networks:
      app_net:

  mongo:
    container_name: app-mongo
    image: mongo:3.6.6-jessie
    volumes:
      - ./data:/data/db
    networks:
      app_net:
        aliases:
          - mongo

networks:
  app_net:

当我运行docker-compose up 时,我收到错误/bin/sh: nodemon: not found。当我在没有compose 的情况下运行单个容器时,一切正常。 docker-compose definition 有什么问题?

【问题讨论】:

  • yarn start-local 将在你的依赖项中查找 nodemon,确保它在你的 package.json 中,在依赖项或 devDependencies 下。
  • @Selfish 因为是全局安装的,所以不依赖。为什么在没有 compose 的情况下运行容器时我没有收到此错误?

标签: node.js docker docker-compose


【解决方案1】:

我认为您的问题可能是您的主机上没有安装 node_modules。因此,当您通过 docker-compose 卷映射主机和容器文件系统时,您的主机会覆盖容器的 node_modules 文件夹。

为了避免您应该忽略该文件夹,如下所示:

version: "3"

services:
  app:
    container_name: app
    restart: always
    build: .
    volumes:
      - .:/usr/src/app
      - /usr/src/app/node_modules/
    environment:
      - MONGO_URI=mongodb://mongo:27017/test
    ports:
      - "3000:3000"
    depends_on:
      - mongo
    networks:
      app_net:

  mongo:
    container_name: app-mongo
    image: mongo:3.6.6-jessie
    volumes:
      - ./data:/data/db
    networks:
      app_net:
        aliases:
          - mongo

networks:
  app_net:

希望对你有帮助:)

【讨论】:

  • 我的 VPS 上没有安装 node_modules。在卷中安装 node_modules 后,一切都开始工作了 - 谢谢!
猜你喜欢
  • 1970-01-01
  • 2021-08-27
  • 2021-08-07
  • 2021-12-28
  • 1970-01-01
  • 2019-02-26
  • 2020-04-22
  • 2022-08-16
  • 1970-01-01
相关资源
最近更新 更多