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

macOS 14.1.1更新后Docker x86交叉构建执行cpan失败

问题:M1 macOS升级后Docker交叉构建AMD64失败(CPAN安装报错)

环境信息

  • macOS-M1 14.1.1
  • Docker 24.0.6 (build ed223bc)
  • 此前ARM64/AMD64交叉构建均正常,系统升级后仅AMD64构建失败

构建命令

build --cache-from thiloj/documentix:buildcache-amd64 --platform=linux/amd64 --cache-to thiloj/documentix:buildcache-amd64 -t t1/test:latest -f Dockerfile.t --load .

Dockerfile内容

FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update --fix-missing
RUN  apt-get -y install \
        git \
        make \
        gcc \
        wget \

ENV LC_CTYPE=C.UTF-8
RUN cpan CPAN

关键错误日志

31.01 >(error): Could not expand [Makefile.PL]. Check the module name.
31.01 >(error): Skipping Makefile.PL because I couldn't find a matching namespace.
31.77 No 'Makefile' created  ANDK/CPAN-2.36.tar.gz
31.77   /usr/bin/cpan Makefile.PL INSTALLDIRS=site -- NOT OK

注:手动进入容器执行cpan CPAN可正常完成

解决思路

  • 清理/禁用构建缓存:当前构建复用了旧缓存,可能存在架构不兼容的缓存数据。尝试去掉--cache-from参数重新构建,或者删除现有缓存镜像后重试。
  • 显式指定CPAN非交互式模式:避免自动配置环节的潜在问题,修改Dockerfile中的CPAN安装命令:
    RUN echo 'yes' | cpan -i CPAN
    
    或者提前生成CPAN配置文件:
    RUN mkdir -p /root/.cpan/CPAN && echo -e "conf auto_commit 1\nconf prerequisites_policy follow" > /root/.cpan/CPAN/MyConfig.pm
    RUN cpan -i CPAN
    
  • 重置QEMU模拟器:Docker交叉构建依赖QEMU,系统升级可能破坏了兼容性。执行以下命令重置QEMU,然后重启Docker:
    docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
    
  • 替换CPAN安装方式:改用系统包管理安装perl组件,或手动编译安装CPAN:
    用系统包替代:
    RUN apt-get -y install perl-modules
    
    手动编译安装:
    RUN wget -O cpan.tgz http://www.cpan.org/authors/id/A/AN/ANDK/CPAN-2.36.tar.gz && tar zxf cpan.tgz && cd CPAN-2.36 && perl Makefile.PL && make && make install && cd .. && rm -rf CPAN-2.36 cpan.tgz
    
  • 禁用BuildKit构建:尝试绕过BuildKit,排查是否是其与QEMU的交互问题:
    DOCKER_BUILDKIT=0 docker build --platform=linux/amd64 -t t1/test:latest -f Dockerfile.t --load .
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 14:36:06