【问题标题】:docker - sh: nodemon: not founddocker - sh:nodemon:未找到
【发布时间】:2021-03-25 06:38:13
【问题描述】:

我正在我的 ec2 实例上创建一个 docker 容器。

当我运行docker-compose up --build时,容器test-web没有创建成功。
我尝试运行 docker logs test-web 并查看日志,然后我看到以下错误

sh: nodemon: not found

我尝试在 package.json 上添加 nodemon 依赖并再次运行 docker-compose up --build 但仍然无法正常工作。

Dockerfile

FROM node:lts-alpine

WORKDIR /server

COPY package*.json ./

RUN npm install

COPY . . 

EXPOSE 3030

CMD ["npm", "run", "dev"]

docker-compose.yml

version: '2.1'

services:
  test-db:
    image: mysql:5.7
    environment:
      - MYSQL_ALLOW_EMPTY_PASSWORD=true
      - MYSQL_USER=admin
      - MYSQL_PASSWORD=12345
      - MYSQL_DATABASE=test
    volumes:
      - ./db-data:/var/lib/mysql
    ports:
      - 3306:3306
  test-web:
    environment:
      - NODE_ENV=local
      #- DEBUG=*
      - PORT=3030
    build: .
    command: >
      ./wait-for-db-redis.sh test-db npm run dev
    volumes:
      - ./:/server
    ports:
      - "3030:3030"
    depends_on:
      - test-db

package.json

  "scripts": {
    "dev": "nodemon --legacy-watch src/",
  },

【问题讨论】:

    标签: node.js docker docker-compose


    【解决方案1】:

    我在Dockerfile 中添加了RUN npm install --global nodemon,它现在可以工作了。

    Dockerfile

    FROM node:lts-alpine
    
    RUN npm install --global nodemon
    
    WORKDIR /server
    
    COPY package*.json ./
    
    RUN npm install
    
    COPY . . 
    
    EXPOSE 3030
    
    CMD ["npm", "run", "dev"]
    

    【讨论】:

      猜你喜欢
      • 2020-11-23
      • 2016-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-20
      • 2020-06-29
      • 1970-01-01
      相关资源
      最近更新 更多