【问题标题】:Docker Compose Up Build Node-Sass ErrorsDocker Compose 构建 Node-Sass 错误
【发布时间】:2021-05-05 02:30:13
【问题描述】:

我一直在尝试使用 docker-compose up --build 命令构建我的 docker 容器,但每次都会遇到一大堆错误。我看到很多node-sassnode-gyp,我已经用谷歌搜索了所有错误组合,但找不到解决方案。

系统

  • MacOS 11.2.3 (MacBook Pro M1)
  • 节点 15.0.0
  • Docker 3.3.1

命令运行

  • docker-compose up --build

Dockerfile

FROM node

# Set up client
WORKDIR /usr/src/app/client
COPY ./client/package*.json ./
RUN npm install

COPY ./client/src ./src
COPY ./client/tsconfig.json ./tsconfig.json
COPY ./client/babel.config.js ./babel.config.js
COPY ./client/.eslintrc.json ./.eslintrc.json

RUN npm run build

# Set up server
WORKDIR /usr/src/app/server
COPY ./server/package*.json ./
RUN npm install

COPY ./server/src ./src
COPY ./server/database ./database
COPY ./server/tests ./tests
COPY ./server/tsconfig.json ./tsconfig.json
COPY ./server/knexfile.ts ./knexfile.ts

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

docker-compose.yml

version: "3.9"
services:
  app:
    build: .
    ports:
      - "3000:3000"
      - "9229:9229"
    environment:
      NODE_ENV: development
      SESSION_SECRET: a_secret
      REDIS_SECRET: a_secret
      JWT_SECRET: a_secret
      DB_USER: a_user
      DB_PASSWORD: a_password
      DB_NAME: a_database
      DB_HOST: db
      DB_CLIENT: pg
    env_file:
      - ./server/.env
      - ./client/.env
    volumes:
      - ./client/dist:/usr/src/app/client/dist
      - ./server/src:/usr/src/app/server/src
      - ./server/database:/usr/src/app/server/database
      - ./server/tests:/usr/src/app/server/tests
  db:
    image: "postgres"
    restart: always
    environment:
      POSTGRES_USER: a_user
      POSTGRES_PASSWORD: a_password
      POSTGRES_DB: a_redis
    ports:
      - "5432:5432"
  redis:
    image: "redis:alpine"
    command: redis-server --requirepass some_pass
    volumes:
      - ./server/redis.conf:/usr/local/etc/redis/redis.conf
    environment:
      REDIS_REPLICATION_MODE: master

错误的部分输出(我会全部发布,但是很长)

% docker-compose up --build      
Docker Compose is now in the Docker CLI, try `docker compose up`

Building app
[+] Building 89.5s (8/21)                                                                                                                                                                                   
 => [internal] load build definition from Dockerfile                                                                                                                                                   0.0s
 => => transferring dockerfile: 91B                                                                                                                                                                    0.0s
 => [internal] load .dockerignore                                                                                                                                                                      0.0s
 => => transferring context: 2B                                                                                                                                                                        0.0s
 => [internal] load metadata for docker.io/library/node:latest                                                                                                                                         0.0s
 => [internal] load build context                                                                                                                                                                      0.0s
 => => transferring context: 15.26kB                                                                                                                                                                   0.0s
 => [ 1/17] FROM docker.io/library/node                                                                                                                                                                0.0s
 => CACHED [ 2/17] WORKDIR /usr/src/app/client                                                                                                                                                         0.0s
 => CACHED [ 3/17] COPY ./client/package*.json ./                                                                                                                                                      0.0s
 => ERROR [ 4/17] RUN npm install                                                                                                                                                                     89.4s
------                                                                                                                                                                                                      
 > [ 4/17] RUN npm install:                                                                                                                                                                                 
#8 33.75 npm WARN deprecated chokidar@2.1.8: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.                                                                          
#8 34.31 npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated                                                                                                               
#8 34.41 npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated                                                                                                            
#8 34.91 npm WARN deprecated har-validator@5.1.5: this library is no longer supported                                                                                                                       
#8 38.60 npm WARN deprecated @hapi/topo@3.1.6: This version has been deprecated and is no longer supported or maintained
#8 38.62 npm WARN deprecated @hapi/bourne@1.3.2: This version has been deprecated and is no longer supported or maintained
#8 39.38 npm WARN deprecated @hapi/address@2.1.4: Moved to 'npm install @sideway/address'
#8 39.43 npm WARN deprecated @hapi/hoek@8.5.1: This version has been deprecated and is no longer supported or maintained
#8 39.88 npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
#8 39.90 npm WARN deprecated chokidar@2.1.8: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
#8 40.29 npm WARN deprecated eslint-loader@2.2.1: This loader has been deprecated. Please use eslint-webpack-plugin
#8 40.65 npm WARN deprecated html-webpack-plugin@3.2.0: 3.x is no longer supported
#8 41.26 npm WARN deprecated @hapi/joi@15.1.1: Switch to 'npm install joi'
#8 42.21 npm WARN deprecated babel-eslint@10.1.0: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.
#8 89.28 npm notice 
#8 89.28 npm notice New minor version of npm available! 7.10.0 -> 7.11.2
#8 89.28 npm notice Changelog: <https://github.com/npm/cli/releases/tag/v7.11.2>
#8 89.28 npm notice Run `npm install -g npm@7.11.2` to update!
#8 89.28 npm notice 
#8 89.28 npm ERR! code 1
#8 89.28 npm ERR! path /usr/src/app/client/node_modules/node-sass
#8 89.28 npm ERR! command failed
#8 89.28 npm ERR! command sh -c node scripts/build.js
#8 89.28 npm ERR! Building: /usr/local/bin/node /usr/src/app/client/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
#8 89.28 npm ERR! make: Entering directory '/usr/src/app/client/node_modules/node-sass/build'

【问题讨论】:

    标签: node.js docker npm docker-compose


    【解决方案1】:

    我找到了解决我自己问题的方法。

    原来node-sass 与节点版本 16.0.0+ 不兼容

    我意识到在我的Dockerfile 中,我没有指定节点版本,我错误地认为它使用的是节点版本 15.0.0,但实际上它正在安装节点版本 16.0.0

    将我的 docker 文件更新为 FROM node:15.12.0 后,一切正常

    【讨论】:

      【解决方案2】:

      对于将来遇到此问题的人,请改用 sass。为了能够在节点 16+ 上使用 sass 文件 https://www.npmjs.com/package/sass

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-03-16
        • 2021-02-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-08
        • 2018-10-02
        相关资源
        最近更新 更多