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

无法修复Lambda容器报错:fork/exec /lambda-entrypoint.sh: exec format error

解决Lambda容器镜像Runtime.InvalidEntrypoint(exec格式错误)问题

问题背景

使用AWS Lambda官方Python基础镜像构建容器镜像时,手动在Dockerfile中指定ENTRYPOINT ["/lambda-entrypoint.sh"]后,测试运行出现exec格式错误,无法正常执行Lambda函数。

相关文件及报错信息

Dockerfile内容

# Use the official Python runtime as a parent image
FROM public.ecr.aws/lambda/python:3.11

WORKDIR /var/task

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY service /var/task/service
COPY lambda_function.py .
COPY *.py .

CMD ["lambda_function.lambda_handler"]

ENTRYPOINT ["/lambda-entrypoint.sh"]

构建命令

docker build --platform linux/amd64 -t 123456.dkr.ecr.us-east-1.amazonaws.com/cdk-hnb659fds-container-assets-7890-us-east-1:my-user-metrics6 .

测试报错输出

{
  "errorType": "Runtime.InvalidEntrypoint",
  "errorMessage": "RequestId: 8ba540c9-9877-4a90-b094-e2836fd0bbc4 Error: fork/exec /lambda-entrypoint.sh: exec format error"
}

解决方案

1. 移除手动指定的ENTRYPOINT

AWS Lambda官方基础镜像(如public.ecr.aws/lambda/python:3.11)已经默认配置了正确的ENTRYPOINT,无需手动添加。手动覆盖该配置会破坏镜像的运行时结构,导致exec格式不兼容。

修正后的Dockerfile:

# Use the official Python runtime as a parent image
FROM public.ecr.aws/lambda/python:3.11

WORKDIR /var/task

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY service /var/task/service
COPY lambda_function.py .
COPY *.py .

CMD ["lambda_function.lambda_handler"]

2. 确认架构一致性

构建时指定--platform linux/amd64是正确的(Lambda默认使用x86_64架构),但需确保本地Docker环境支持该平台模拟,或直接在x86_64主机上构建,避免跨架构二进制不兼容问题。

验证步骤

  1. 使用修正后的Dockerfile重新构建镜像
  2. 推送镜像至ECR后,在Lambda控制台测试函数,或本地使用docker run命令模拟Lambda运行环境验证。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 10:53:21