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

使用public.ecr.aws/lambda/python:3.7构建Lambda容器包安装失败求助

解决AWS Lambda Python 3.7镜像中安装依赖包的问题

你遇到的问题根源是选了错误的包管理工具:public.ecr.aws/lambda/python:3.7 基于Amazon Linux 2系统,只能用yum作为包管理工具,apt(Debian/Ubuntu)和apk(Alpine)都不适用。而之前yum报错是因为镜像默认仓库配置在离线构建时可能无法正常访问,且目标包不在默认基础仓库中。

修正后的Dockerfile

FROM public.ecr.aws/lambda/python:3.7

# 复制配置文件与代码
COPY policy.xml /etc/ImageMagick-6
COPY . .

# 启用EPEL仓库(用于获取希伯来语Tesseract包)
RUN amazon-linux-extras enable epel

# 清理旧缓存并安装系统依赖
RUN yum clean all && \
    yum makecache fast && \
    yum install -y tesseract-ocr-heb ghostscript && \
    yum clean all # 清理缓存减小镜像体积

# 安装Python依赖
RUN pip install -r requirements.txt

# Lambda启动命令
CMD ["app.lambda_handler"]

关键说明

  • 启用EPEL仓库:tesseract-ocr-heb 不在Amazon Linux 2的默认基础仓库中,需要通过EPEL(Extra Packages for Enterprise Linux)仓库获取,因此先执行amazon-linux-extras enable epel。
  • 缓存处理:每次yum操作前后清理缓存,既解决“缓存数据不足”的报错,也能避免镜像体积过大。
  • 移除无用指令:Lambda容器无需EXPOSE 80,因为Lambda通过事件触发而非端口监听,该指令可直接删除。

如果构建时仍遇到仓库访问问题,可添加--network=host参数确保容器能正常访问外部仓库:

docker build --network=host -t lambda-image .

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 14:25:16