Docker Patterns 是一套面向容器化开发的 Docker 与 Docker Compose 最佳实践集合,重点解决本地开发、生产镜像构建、容器安全与 CLI 安装器测试隔离等问题。
【用途】 为使用 Docker / Docker Compose 的项目提供可复用的模式:如何组织本地开发栈、如何区分开发与生产镜像、如何配置网络与卷、如何加固容器,以及如何用容器搭建可丢弃的 CLI 安装器测试环境。
【主要能力】
- 本地开发 Compose 栈:提供标准 Web 应用栈示例,包含 app、db(PostgreSQL)、redis、mailpit(本地邮件测试)等服务,使用 depends_on 健康检查条件、绑定挂载热重载、匿名卷保护容器内 node_modules。
- 开发与生产 Dockerfile:多阶段构建(deps / dev / build / production),生产阶段使用最小镜像、非 root 用户、HEALTHCHECK 与仅复制必要产物。
- Override 文件:通过 docker-compose.override.yml 自动加载开发设置,通过 docker-compose.prod.yml 显式用于生产,并给出对应启动命令。
- 网络:服务名 DNS 解析、自定义 frontend-net / backend-net 网络隔离、仅绑定 127.0.0.1 或生产环境中不暴露端口。
- 卷策略:命名卷、绑定挂载、匿名卷的用途与常见组合模式(源码热重载、保护 node_modules 与构建缓存、持久化数据与初始化脚本)。
- 容器安全:指定具体镜像标签而非 latest、非 root 运行、cap_drop ALL、no-new-privileges、read_only 根文件系统与 tmpfs、基于环境变量与 Docker secrets 的密钥管理。
- 加固的 CLI 安装器测试框架(Hardened CLI Installer Harnesses):以可丢弃容器测试安装器行为,使用不可变 digest 固定基础镜像、非 root UID/GID、只读挂载仓库与源项目、将源项目复制到可写 tmpfs 后再变更、/workspace 使用 noexec 与 0700、read_only 与 pids_limit、默认 network_mode: none,并默认 dry run、仅白名单明确的 dry-run / install / plugin / shell 模式,跨平台运行器使用参数数组或 spawnSync(shell: false)。
- ECC Plugin Setup Harness 参考实现:提供 fixture-tests、real-cli(Debian)、real-cli-ubuntu 服务,给出配置校验、镜像构建、dry run、命名会话启动/连接/清理等具体命令,并说明 dry run 执行的命令、容器内 npm pack 流程与校验内容。
- Codex 登录网络会话:说明 codex login 绑定 127.0.0.1:1455 的 OAuth 回调问题,给出通过端口桥接与 codex-auth-relay.js 在容器内完成登录的步骤与注意事项。
- .dockerignore 示例、调试常用命令、网络问题排查方法以及反模式列表(生产中直接使用 Compose、无卷存数据、root 运行、:latest 标签、单体容器、密钥写入 compose 文件等)。
【适用场景】 需要搭建本地开发容器栈的 Web 应用项目、需要区分开发与生产镜像的 Node.js 项目、需要加固容器安全配置的团队,以及需要在隔离环境中验证 CLI 安装器行为、不希望测试污染源仓库的开发者与 CI 场景。资料中也提醒 macOS 无法作为 Linux 容器运行、Windows 容器需要 Windows 引擎,应以原生 CI 矩阵覆盖宿主平台差异。
【限制与说明】 资料未提供该技能的收费、价格、安装命令、版本或平台支持等额外信息,相关事实暂未提供。以上内容均基于所提供的资料,未作扩展推断。