簡體   English   中英

Docker中的Node.js錯誤

[英]Node.js error in docker

我使用node:latest圖像。 並獲取ModuleBuildError: Module build failed: ModuleBuildError: Module build failed: Error: spawn /hobover_web_client/node_modules/pngquant-bin/vendor/pngquant ENOENT
Dockerfile

FROM node:latest

# set working directory
RUN mkdir -p /hobover_web_client
WORKDIR /hobover_web_client
ENV NPM_CONFIG_LOGLEVEL=warn
COPY package.json yarn.lock /hobover_web_client/

# install app dependencies   
RUN  rm -rf  node_modules/ && yarn install --ignore-scripts && yarn global add babel babel-cli webpack nodemon pngquant optipng recjpeg
ADD . /hobover_web_client

在docker-compose.yml中

version: '2'
  hobover_web_client:
    container_name: hobover_web_client
    build: ./hobover_web_client
    command: yarn start    
    ports:
      - "8080:8080"
    volumes:
      - ./hobover_web_client:/hobover_web_client
      - /hobover_web_client/node_modules

生成工作成功,但是向上導致錯誤。 如果沒有docker,我該如何解決?

您的問題是在同一目錄中裝入app和node_modules。 當您在docker-compose中使用以下內容時

  - ./hobover_web_client:/hobover_web_client

您使現有的node_modules黯然失色。 因此,您需要使用NODE_PATH來重新定位軟件包。 將您的Dockerfile更改為以下內容

FROM node:latest

# set working directory
RUN mkdir -p /hobover_web_client /node_modules
WORKDIR /hobover_web_client
ENV NPM_CONFIG_LOGLEVEL=warn NODE_PATH=/node_moudles
COPY package.json yarn.lock /hobover_web_client/

# install app dependencies   
RUN  yarn install --ignore-scripts && yarn global add babel babel-cli webpack nodemon pngquant optipng recjpeg
ADD . /hobover_web_client

將您的撰寫更改為以下內容

version: '2'
  hobover_web_client:
    container_name: hobover_web_client
    build: ./hobover_web_client
    command: yarn start    
    ports:
      - "8080:8080"
    volumes:
      - ./hobover_web_client:/hobover_web_client
      - /node_modules

因此,現在,您的/node_modules進入一個匿名卷,因此您不需要該匿名卷並將其刪除,因為該路徑位於其他文件夾中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM