
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
amazonlinux for lambda layer 是基于 Amazon Linux 操作系统构建的专用 Docker 镜像,专为 AWS Lambda Layer 开发设计。该镜像提供与 Lambda 运行时环境高度兼容的系统级依赖和工具链,支持开发者打包自定义库、系统依赖或运行时组件,通过 Lambda Layer 共享给多个 Lambda 函数使用。
glibc、libssl 等),避免因依赖版本差异导致的运行时错误。ffmpeg、imagemagick)的打包,解决 Lambda 原生环境依赖缺失问题。yum 包管理器,支持安装 Amazon Linux 官方源中的系统库(如 libpng、libjpeg 等)。gcc、make、cmake),支持源码编译自定义依赖。ffmpeg、图像处理库 libvips)时,通过该镜像编译并打包依赖至 Layer。lambda:CreateLayer、lambda:UpdateLayerVersion 等)。步骤 1:拉取镜像
通过 Docker Hub 或 AWS ECR 拉取镜像(需替换 <tag> 为具体版本,如 2 对应 Amazon Linux 2):
bashdocker pull amazonlinux:lambda-layer-<tag>
步骤 2:创建 Layer 构建目录
bashmkdir -p lambda-layer && cd lambda-layer
步骤 3:编写 Dockerfile
创建 Dockerfile 定义 Layer 构建流程,示例如下(以打包 ffmpeg 为例):
dockerfile# 基于 amazonlinux for lambda layer 镜像 FROM amazonlinux:lambda-layer-2 # 安装系统依赖(通过 yum) RUN yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm \ && yum install -y ffmpeg # 定义 Lambda Layer 输出目录(需与 Lambda 运行时路径一致) WORKDIR /opt # 将依赖复制到 Layer 标准输出路径(Lambda 会从 /opt 加载 Layer 内容) RUN cp -r /usr/bin/ffmpeg /opt/ \ && cp -r /usr/lib64/libav* /opt/lib/ \ && cp -r /usr/lib64/libsw* /opt/lib/ # 打包 Layer 内容为 zip(可选,便于本地测试) RUN zip -r /tmp/layer.zip .
步骤 4:构建 Layer 包
在 lambda-layer 目录下执行构建命令:
bashdocker build -t lambda-layer-ffmpeg .
步骤 5:提取 Layer 包
从容器中复制打包好的 layer.zip 到本地:
bashdocker run --rm -v $(pwd):/output lambda-layer-ffmpeg cp /tmp/layer.zip /output/
步骤 6:部署到 AWS Lambda
通过 AWS CLI 将 layer.zip 上传为 Lambda Layer:
bashaws lambda publish-layer-version \ --layer-name ffmpeg-layer \ --zip-file fileb://layer.zip \ --compatible-runtimes python3.9 nodejs18.x \ --description "FFmpeg for Lambda functions"
可通过以下命令在容器内模拟 Lambda 环境测试 Layer 依赖:
bash# 启动容器并挂载 Layer 目录 docker run -it --rm -v $(pwd)/layer.zip:/opt/layer.zip amazonlinux:lambda-layer-2 bash # 解压 Layer 并测试依赖(如 ffmpeg) unzip /opt/layer.zip -d /opt && /opt/ffmpeg -version
bash# 启动交互式终端,测试系统依赖安装 docker run -it --rm amazonlinux:lambda-layer-2 bash # 在容器内安装并测试依赖(如 libpng) yum install -y libpng-devel && pkg-config --modversion libpng
以下示例通过镜像打包 Python 系统级依赖(如 pycurl,需依赖系统 libcurl):
dockerfileFROM amazonlinux:lambda-layer-2 # 安装 Python 及系统依赖 RUN yum install -y python3.9 python3.9-devel gcc libcurl-devel # 创建虚拟环境并安装依赖 RUN python3.9 -m venv /opt/venv \ && source /opt/venv/bin/activate \ && pip install pycurl -t /opt/python # 打包为 Lambda Layer 标准结构(Python Layer 需放在 /opt/python 目录) RUN zip -r /tmp/python-layer.zip /opt/python
创建 docker-compose.yml 实现 Layer 自动构建与输出:
yamlversion: '3' services: layer-builder: build: . volumes: - ./output:/output command: cp /tmp/layer.zip /output/
执行构建:
bashdocker-compose up --build
构建产物将输出至 ./output/layer.zip。
该镜像默认包含与 Lambda 运行时一致的环境变量,可直接用于依赖打包:
| 环境变量名 | 说明 | 示例值 |
|---|---|---|
LAMBDA_TASK_ROOT | Lambda 函数代码根目录(Layer 需与此路径兼容) | /var/task |
PATH | 系统命令搜索路径 | /usr/local/bin:/usr/bin:/bin |
LD_LIBRARY_PATH | 动态链接库搜索路径 | /var/task/lib:/opt/lib |
lambda-layer-2(对应 Amazon Linux 2)、lambda-layer-2023(对应 Amazon Linux 2023),需与目标 Lambda 运行时的 Amazon Linux 版本匹配(可通过 AWS 文档 确认运行时对应的系统版本)。/opt/python,Node.js 放 /opt/nodejs),具体参考 AWS Lambda Layer 目录规范。yum 安装系统依赖时,建议通过 --setopt=install_weak_deps=False 减少冗余依赖,降低 Layer 体积:
bashyum install -y --setopt=install_weak_deps=False ffmpeg
/opt 或其子目录(如 /opt/lib、/opt/bin),确保 Lambda 能正确加载。以下是 argusdockersvc1/amazonlinux 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。




来自真实用户的反馈,见证轩辕镜像的优质服务