用途:把应用完整放入 Docker 容器,分五个有序阶段:调查、生成、构建、启动、验证行为。核心观点是容器化是调查问题而非套模板,Dockerfile 本身容易,难在事先弄清应用监听端口、依赖服务、读取文件的目录。
主要能力:从代码推导容器化契约(运行时版本、锁文件、启动命令、监听端口与绑定地址、环境变量默认值、依赖服务、相对 CWD 路径、健康端点、构建阶段、启动时依赖访问、磁盘写入);生成 .dockerignore、Dockerfile 与 compose;构建镜像;启动含依赖服务的栈;按进程、可达性、健康、渲染、静态资源、集成等维度验证行为。
使用方式:阶段一不写文件,先写出契约(栈、启动、端口、绑定、依赖、环境变量、CWD、健康、构建、卷);阶段二先写 .dockerignore(用 **/node_modules 等模式),再写 Dockerfile(固定 tag、先复制清单再装依赖、有锁文件用确定性安装、非 root、exec 形式 CMD、PID 1 转发信号、HEALTHCHECK),compose 镜像应用默认值、仅把依赖地址由 localhost 改为服务名、用 condition: service_healthy 绑定启动顺序、避免 container_name;阶段三构建并对照栈的典型体积区间;阶段四启动并处理容器名、端口、卷、网络冲突,删除容器可逆、删除卷不可逆;阶段五验证行为,healthy 不等于可用。
适用场景:Node、Python、Go、Java、.NET 等应用容器化,需要 Postgres、MySQL、Redis、MongoDB、RabbitMQ 等依赖服务时。
限制:若代码中不存在则不虚构 PORT、/health 等配置;不擅自修改应用代码;绑定地址硬编码等问题只作为发现上报;资料未提供具体安装命令、收费与平台信息。