You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M1 Mac下执行docker-compose up --build构建容器报node-sass/node-gyp错误

问题描述

长期执行docker-compose up --build命令构建Docker容器时,每次执行都会抛出大量错误,报错信息中频繁出现与node-sass、node-gyp相关的构建失败提示,已检索所有匹配的错误组合仍未找到解决方案。

系统环境

  • MacOS 11.2.3(MacBook Pro M1 机型)
  • Node 15.0.0
  • Docker 3.3.1

执行命令

  • docker-compose up --build

Dockerfile 配置

# 基于官方Node基础镜像
FROM node

# 配置客户端工作环境
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

# 配置服务端工作环境
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 已内置在 Docker CLI 中,可直接尝试运行 docker compose up

正在构建 app
[+] Building 89.5s (8/21)
 => [internal] 加载Dockerfile构建定义
 => => 传输dockerfile: 91B
 => [internal] 加载 .dockerignore 配置
 => => 传输上下文: 2B
 => [internal] 拉取 docker.io/library/node:latest 镜像元数据
 => [internal] 加载构建上下文
 => => 传输上下文: 15.26kB
 => [ 1/17] 基于 docker.io/library/node 镜像生成构建层
 => CACHED [ 2/17] 设置工作目录 /usr/src/app/client
 => CACHED [ 3/17] 复制 ./client/package*.json 到容器内工作目录
 => ERROR [ 4/17] 执行 npm install 耗时89.4s
------
 > 构建步骤[4/17] 执行 npm install:
#8 33.75 npm 警告:chokidar@2.1.8 已过时,该版本在Node 14+环境下会出现兼容问题,建议升级至chokidar 3,可缩减15倍依赖体积
#8 34.31 npm 警告:urix@0.1.0 已停止维护
#8 34.41 npm 警告:resolve-url@0.2.1 已停止维护
#8 34.91 npm 警告:har-validator@5.1.5 已停止维护
#8 38.60 npm 警告:@hapi/topo@3.1.6 已过时,不再提供技术支持与维护
#8 38.62 npm 警告:@hapi/bourne@1.3.2 已过时,不再提供技术支持与维护
#8 39.38 npm 警告:@hapi/address@2.1.4 已迁移至独立包 @sideway/address
#8 39.43 npm 警告:@hapi/hoek@8.5.1 已过时,不再提供技术支持与维护
#8 39.88 npm 警告:request@2.88.2 已停止维护
#8 39.90 npm 警告:chokidar@2.1.8 已过时,该版本在Node 14+环境下会出现兼容问题,建议升级至chokidar 3,可缩减15倍依赖体积
#8 40.29 npm 警告:eslint-loader@2.2.1 已过时,建议使用 eslint-webpack-plugin
#8 40.65 npm 警告:html-webpack-plugin@3.2.0 3.x版本已不再提供支持
#8 41.26 npm 警告:@hapi/joi@15.1.1 已迁移至独立包 joi
#8 42.21 npm 警告:babel-eslint@10.1.0 已升级为 @babel/eslint-parser,原包不再接收版本更新
#8 89.28 npm 系统提示
#8 89.28 npm 系统提示:检测到当前npm 7.10.0可升级至7.11.2
#8 89.28 npm 系统提示:可运行 npm install -g npm@7.11.2 完成版本升级
#8 89.28 npm 错误码: 1
#8 89.28 npm 错误路径: /usr/src/app/client/node_modules/node-sass
#8 89.28 npm 错误: 命令执行失败
#8 89.28 npm 错误: 触发失败的命令为 sh -c node scripts/build.js
#8 89.28 npm 错误: 构建执行命令: /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 错误: make: 进入构建目录 '/usr/src/app/client/node_modules/node-sass/build'

内容的提问来源于stack exchange,提问作者lost_programmer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.22 21:36:05