
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
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
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务