核心思路是分层隔离:底层固化基础环境,顶层独立业务逻辑,中间通过固定路径和标准接口衔接;多阶段构建彻底分离构建与运行时,构建阶段用完整工具链镜像完成编译打包,运行阶段仅复制最小必要文件至轻量镜像。
核心思路是利用分层机制的天然隔离性,把变动频率低的基础环境固化为底层只读层,把高频迭代的业务逻辑放在顶层独立层,中间通过明确边界(如固定路径、标准接口)衔接。
用多阶段构建分离构建与运行时环境
这是解耦最彻底的方式。构建阶段负责编译、打包、依赖安装;运行阶段仅保留最小运行时所需文件,完全不携带源码、构建工具或临时产物。
构建阶段使用完整工具链镜像(如
、
),完成代码编译、依赖安装、模型转换等操作
运行阶段切换至轻量基础镜像(如
或
),只
复制可执行文件、配置和模型文件
两个阶段之间无共享文件系统,也无隐式依赖,业务逻辑变更不会污染基础环境层
按变更频率组织Dockerfile指令顺序
层缓存命中率直接决定解耦是否稳定。把几乎不变的内容(OS、运行时、通用依赖)放在前面,把常变内容(代码、配置、密钥)放在后面。
Docker Sandbox
创建并管理 Docker 沙箱虚拟机环境以安全执行代理。适用于运行不受信任代码、探索包或隔离代理工作负载。支持 Claude、Codex、Copilot、Gemini 和 Kiro 代理,并提供网络代理控制。
下载
先
再
,避免每次改代码都重装全部依赖
避免
放在
之前,否则任何源码改动都会使后续所有层失效
用
过滤掉
、
、
等非必要文件,防止它们意外进入某一层并破坏缓存
基础层统一托管与版本化管理
解耦的前提是基础环境本身可复用、可验证、可升级。不能每个项目各自维护一个
。
内部维护标准化基础镜像仓库,例如
,内含预装 CUDA、PyTorch、OpenCV 等 AI 常用组件
所有业务镜像统一
,安全补丁或运行时升级只需重建基础镜像一次,下游自动受益
基础镜像通过 CI 流水线自动测试(启动检查、健康探针、依赖完整性),确保其作为“平台能力”的稳定性
业务层设计为纯数据+声明式入口
顶层业务层应尽量不含逻辑判断或环境感知代码,只包含模型文件(
)、配置(
)、静态资源和一个标准启动脚本。
启动命令统一为
,脚本中解析环境变量决定加载哪个模型、监听哪个端口
模型文件通过
显式注入,不从网络下载,避免运行时不确定性
所有业务差异收敛到配置和数据层,使得同一镜像可在测试、预发、生产环境复用,仅靠挂载不同配置生效
golang:1.21python:3.9-slimalpine:latestdistroless/python3COPY --from=builderCOPY requirements.txt .RUN pip installCOPY . .RUN.dockerignore__pycache__.gitlogs/FROM ubuntu:22.04myorg/base-py39:2026q2FROM myorg/base-py39:2026q2.ptconfig.yamlCMD ["./entrypoint.sh"]COPY model.pt /models/