基于ECR镜像创建Lambda时遇libgomp.so.1文件缺失错误求助
问题解决:Lambda运行时找不到
libgomp.so.1 核心原因
你在Dockerfile中通过yum安装了libgomp,但Lambda运行时的动态链接库路径(LD_LIBRARY_PATH)未包含该库的安装目录,导致无法加载。
修复方案
方案1:复制库文件到Lambda可访问目录并配置路径
修改Dockerfile,将安装后的libgomp.so.1复制到Lambda任务根目录的专属lib文件夹,同时添加环境变量让系统能识别该路径:
FROM public.ecr.aws/lambda/python:3.7 WORKDIR /doc_dir COPY requirements.txt . COPY data.cav . RUN yum update -y && yum install libgomp -y # 创建lib目录并复制库文件 RUN mkdir -p ${LAMBDA_TASK_ROOT}/lib && cp /usr/lib64/libgomp.so.1 ${LAMBDA_TASK_ROOT}/lib # 配置动态链接库路径 ENV LD_LIBRARY_PATH="${LAMBDA_TASK_ROOT}/lib:$LD_LIBRARY_PATH" RUN pip3 install -r requirements.txt -i custom_url --target "${LAMBDA_TASK_ROOT}" && rm requirements.txt COPY demo.py ${LAMBDA_TASK_ROOT} CMD ["demo.lambda_handler"]
方案2:自动查找并复制库文件
如果不确定libgomp的具体安装路径,可替换复制步骤为自动查找命令:
# 替换原复制步骤 RUN mkdir -p ${LAMBDA_TASK_ROOT}/lib && find / -name libgomp.so.1 -type f | xargs cp -t ${LAMBDA_TASK_ROOT}/lib
方案3:改用静态编译依赖(可选)
若你的Python依赖是基于libgomp编译的,尝试安装静态编译版本的依赖,彻底避免对系统动态库的依赖。
验证步骤
- 重新构建镜像并推送到ECR
- 更新Lambda函数使用新镜像
- 再次测试Lambda函数
内容的提问来源于stack exchange,提问作者vineet singh
相关产品推荐
相关产品推荐

