本页面介绍了 Docker-OSX 的开发工作流程和测试流程。内容涵盖如何设置开发环境、构建和测试不同的镜像变体,以及如何为项目做出贡献。有关作为最终用户使用 Docker-OSX 的信息,请参阅 安装与基本用法,有关解决常见问题的指导,请参阅 故障排除。
为 Docker-OSX 设置开发环境需要特定的依赖项来支持虚拟化和测试。
来源: tests/test.sh157-169 tests/test.sh196-225
Docker-OSX 的开发工作流程遵循以下通用步骤
master:主稳定分支feature/name)bugfix/issue-number)Docker-OSX 采用全面的测试基础设施来确保镜像的质量和功能。
测试系统包括
来源: tests/test.sh122-142 tests/boot-images.sh27-39
自动化测试流程如下
主要的 test.sh 脚本协调整个测试过程
boot-images.sh 来验证成功启动boot-images.sh 脚本专注于启动验证
Docker-OSX 支持多个 macOS 版本,每个版本都需要特定的测试
| 版本 | 标签 | 测试参考镜像 |
|---|---|---|
| High Sierra | high-sierra | high-sierra_master.png |
| Mojave | mojave | mojave_master.png |
| Catalina | catalina | catalina_master.png |
| Big Sur | big-sur | big-sur_master.png |
| Monterey | monterey | monterey_master.png |
| Ventura | ventura | ventura_master.png |
| Sonoma | sonoma | sonoma_master.png |
来源: tests/test.sh134-142 tests/boot-images.sh27-35
Docker-OSX 项目使用持续集成 (CI) 来自动测试更改和构建镜像。
测试脚本支持各种环境变量来配置 CI 流程
| 可变 | 目的 | 示例 |
|---|---|---|
| BRANCH | 要测试的 Git 分支 | master |
| REPO | 存储库 URL | https://github.com/sickcodes/Docker-OSX.git |
| MIRROR_COUNTRY | 用于包下载的镜像国家代码 | US |
| VNC_PASSWORD | VNC 测试密码 | testing |
| DOCKER_USERNAME | 用于推送镜像的 Docker Hub 用户名 | username |
| DOCKER_PASSWORD | 用于推送镜像的 Docker Hub 密码 | password |
| NO_CACHE | 构建时是否使用缓存 | --no-cache |
来源: tests/test.sh34-113 tests/test.sh115-119
开发 Docker-OSX 时,请遵循以下最佳实践
来源: CHANGELOG.md3-20 tests/test.sh269-279
开发中常见问题及解决方案
| 问题 | 解决方案 |
|---|---|
| Docker 构建失败 | 检查 Docker 日志,确保启用了实验性功能 |
| KVM 不可用 | 验证 KVM 模块是否已加载,检查权限 |
| X11 显示问题 | 确保 X11 套接字可用且权限正确 |
| 启动测试失败 | 手动比较截图,检查 macOS 中的 UI 更改 |
| CI 构建超时 | 优化构建步骤,考虑拆分成多个作业 |
| 推送到 Docker Hub 失败 | 验证凭据和权限 |
Docker-OSX 的当前开发目标包括
要为 Docker-OSX 做贡献
有关使用 Docker-OSX 的更全面指南,请参阅 安装与基本用法 以及此 wiki 中的其他页面。