SuperAPI AI 工具集

create-multistage-dockerfile

部署与运维

查看项目

更新于 10-16 08:06

技能介绍

用途:创建多阶段 Dockerfile,把构建工具链与运行时分离,生成精简的生产镜像。适用于生产镜像过大(编译型语言超过 500MB)、最终镜像混入编译器或开发头文件、需要同一 Dockerfile 同时产出开发与生产镜像、以及部署到边缘或 serverless 等受限环境的场景。

主要能力:区分构建阶段与运行阶段依赖(编译器、包管理器、开发头文件、源码、测试框架通常只留在构建阶段);采用“胖镜像构建、精简镜像复制产物”的核心模式;提供 Node.js(npm ci 后 prune --omit=dev)、Python(复制 virtualenv)、Go(CGO_ENABLED=0 静态二进制到 scratch)、Rust(musl 静态二进制)等语言示例;给出运行时基础镜像选择参考(scratch、distroless static/base、*-slim、alpine)及跨阶段 ARG 用法。

使用方式:先识别构建与运行时依赖,再按 FROM ... AS builder 与 FROM 运行镜像两段结构编写,用 COPY --from=builder 复制产物,最后用 docker build --target builder 与默认构建对比体积。跨阶段传参需在每个阶段重新声明 ARG,构建时用 docker build --build-arg APP_VERSION=1.2.3 .。

限制与注意:编译产物可能依赖 libc、libssl 等共享库,需充分测试精简镜像;COPY --from 路径必须精确匹配;Alpine 使用 musl libc,部分 Python wheel 与 Node 原生模块可能不兼容,解释型语言建议用 -slim;scratch 不含 CA 证书,需从构建阶段复制或改用 distroless;FROM 之前声明的 ARG 仅对 FROM 行生效。资料未提供收费、价格与平台信息。