
https://github.com/degagne/docker-aws-lambda/actions/workflows/docker-ci.yml/badge.svg](https://github.com/degagne/docker-aws-lambda/actions/workflows/docker-ci.yml)
本项目提供用于运行基于Python的AWS Lambda函数的Docker镜像,包含Dockerfile和docker-compose.yaml配置,用于构建和管理基于Python 3.10+的AWS Lambda容器化环境。镜像基于Alpine Linux,提供标准和精简(slim)版本,确保容器轻量高效。
Docker镜像标签格式如下:
<image_name>-<python_version>alpine<distro_version>-<variant>
参数说明:
<image_name>:镜像名称(如 aws-lambda)<python_version>:Python版本(如 3.10、3.11)<distro_version>:Alpine Linux版本(如 3.22、3.23)<variant>:镜像变体(如 slim、standard,标准版本可省略)标签示例:
aws-lambda-3.10-alpine3.22-slimaws-lambda-3.11-alpine3.22aws-lambda-3.13-alpine3.21Python 3.13
Python 3.12
Python 3.11
Python 3.10
基础镜像基于Alpine Linux构建,支持多个Python版本。标准版本默认包含以下数据库连接第三方库:
PyMySQL(MySQL支持)psycopg2-binary(PostgreSQL支持)oracledb(Oracle支持)每个Python版本均提供"精简(slim)"变体,优化镜像体积,不包含上述数据库库,适用于无需数据库连接的应用场景。
可通过提供的Dockerfile构建镜像,或从Docker仓库拉取(如可用)。
单镜像构建
进入包含Dockerfile的目录,执行:
bashdocker build -t <image_name>:<tag> .
批量构建(Docker Compose)
使用项目根目录的docker-compose.yaml批量构建所有镜像:
bashdocker compose --project-directory 3.13 --env-file base.env --no-cache build
创建自定义Dockerfile生成Lambda镜像,以下是Python 3.13 + Alpine 3.22的示例:
dockerfileFROM python-alpine AS final-image # 设置Lambda用户、组和任务根目录构建参数 ARG LAMBDA_USER ARG LAMBDA_GROUP ARG LAMBDA_TASK_ROOT # 切换到非Root用户以增强安全性 USER ${LAMBDA_USER} # 创建Lambda任务根目录 WORKDIR ${LAMBDA_TASK_ROOT} # 复制函数代码和依赖文件 COPY lambda_function.py ${LAMBDA_TASK_ROOT} COPY requirements.txt ${LAMBDA_TASK_ROOT} # 安装Python依赖 RUN pip install --target ${LAMBDA_TASK_ROOT} --requirement requirements.txt --upgrade # 设置Lambda函数入口点 ENTRYPOINT ["/var/task/lambda-entrypoint.sh"] # 设置Lambda函数处理程序命令 CMD ["lambda_function.lambda_handler"]
添加自定义CA证书
如需添加自定义CA证书,在final-image阶段前添加以下构建步骤:
dockerfile# ------------------- 阶段1:构建阶段 ------------------- FROM ddegagne/aws-lambda:3.13-alpine3.22 AS python-alpine # 切换到Root用户安装证书 USER root # 下载CA证书并添加到可信证书库 ADD https://artifactory.example.com/artifactory/dcs-container-release-local/CA-Certs/ca-certificate.crt \ /usr/local/share/ca-certificates/ca-certificates.crt # 更新CA证书 RUN update-ca-certificates
bashdocker build \ --build-arg LAMBDA_TASK_ROOT=/var/task \ --build-arg LAMBDA_USER=lambda-user \ --build-arg LAMBDA_GROUP=lambda-group \ -f Dockerfile \ -t aws_docker_test/python3.13:local .
bashdocker run -p 9000:8080 aws_docker_test/python3.13:local
使用AWS Lambda Runtime Interface Emulator本地测试,发送POST请求:
powershellInvoke-WebRequest -Uri "http://localhost:9000/2015-03-31/functions/function/invocations" -Method Post -ContentType "application/json" -Body '{}'
示例响应:
powershellStatusCode : 200 StatusDescription : OK Content : {"statusCode": 200, "body": "Hello from Lambda! nice_shtern"} RawContent : HTTP/1.1 200 OK Content-Length: 61 Content-Type: text/plain; charset=utf-8 Date: Thu, 21 Aug 2025 14:28:06 GMT {"statusCode": 200, "body": "Hello from Lambda! nice_shtern"} Forms : {} Headers : {[Content-Length, 61], [Content-Type, text/plain; charset=utf-8], [Date, Thu, 21 Aug 2025 14:28:06 GMT]} Images : {} InputFields : {} Links : {} ParsedHtml : mshtml.HTMLDocumentClass RawContentLength : 61
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务