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

Mac端运行Win10项目docker-compose报Rust编译器依赖安装错误

问题根因
  • Docker镜像构建是完全隔离的流程,宿主机安装的Rust、Conda环境都不会进入构建上下文,之前在Mac宿主机配置Rust无法解决镜像内的编译报错。
  • M系列芯片的Mac默认构建arm64架构镜像,锁定版本的tokenizers==0.10.3、sentencepiece==0.1.96没有提供arm64架构下Python3.7对应的预编译安装包,pip会拉取源码执行本地编译,而编译tokenizers必须依赖Rust编译器,工具链缺失就会抛出Rust相关报错。
  • 依赖列表中混入了Windows专属包wincertstore==0.2,该包仅支持Windows系统,在Linux容器环境下安装会触发异常,属于跨系统迁移未清理的冗余依赖。
修复方案

两种方案可任选,优先选择第一种,改动最小,和原Windows环境的依赖版本完全一致,不会出现兼容性问题。

方案1:构建amd64架构镜像(推荐)

执行docker compose前在终端声明Docker默认构建amd64架构镜像,运行时通过Mac自带的Rosetta 2转译执行,所有依赖都可以直接拉取预编译包,无需本地编译:

export DOCKER_DEFAULT_PLATFORM=linux/amd64

如果需要长期生效,直接在docker-compose.yml对应服务配置中增加平台声明即可:

services:
  你的微服务名:
    platform: linux/amd64
    # 其余原有配置保持不变

配置完成后正常执行docker compose up -d即可启动服务。

方案2:原生构建arm64架构镜像

如果需要运行原生arm64版本的容器,需要做两处调整:

  1. 编辑requirements.txt,删除wincertstore==0.2这一行Windows专属依赖。
  2. 修改Dockerfile,在安装Python依赖前预装Rust编译工具链和必要系统依赖,修改后的内容如下:
FROM python:3.7-slim-buster
WORKDIR /app

COPY ./requirements.txt /app/requirements.txt

RUN apt-get update \
    && apt-get install -y --no-install-recommends gcc curl musl-dev \
    && curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

ENV PATH="/root/.cargo/bin:${PATH}"

RUN pip install --upgrade pip

RUN pip install -r /app/requirements.txt \
    && rm -rf /root/.cache/pip

COPY . /app/

修改完成后执行docker compose build --no-cache清除旧构建缓存重新打包镜像即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 22:45:50