GitHub_Trending/cs/cs249r_book开发环境:Docker Compose一键部署

GitHub_Trending/cs/cs249r_book开发环境:Docker Compose一键部署

【免费下载链接】cs249r_book Collaborative book for CS249r: Tiny Machine Learning 【免费下载链接】cs249r_book 项目地址: https://gitcode.com/GitHub_Trending/cs/cs249r_book

为什么选择Docker容器化部署

传统开发环境配置往往需要手动安装系统依赖、TeX Live、R和Python包等组件,整个过程耗时约45分钟,且容易出现环境不一致问题。而通过Docker容器化方案,可将Linux环境的构建时间从45分钟缩短至5-10分钟,大幅提升开发效率。

容器化架构概览

核心策略

  • Linux环境:采用预构建容器包含所有依赖组件,每周自动重建并推送到GitHub Container Registry
  • Windows环境:保持传统构建方式不变
  • 镜像管理:使用GitHub Container Registry (ghcr.io)存储容器镜像

性能对比

传统Linux构建(45分钟):
├── 安装系统包 (5-10分钟)
├── 安装TeX Live (15-20分钟) 
├── 安装R包 (5-10分钟)
├── 安装Python包 (2-5分钟)
├── 安装Quarto (1-2分钟)
└── 构建内容 (5-10分钟)

容器化Linux构建(5-10分钟):
├── 拉取容器 (30秒)
├── 检出代码 (30秒)  
└── 构建内容 (5-10分钟)

准备工作

环境要求

  • Docker Engine 20.10+
  • Git
  • 网络连接(用于拉取容器镜像和代码)

获取项目代码

git clone https://gitcode.com/GitHub_Trending/cs/cs249r_book
cd GitHub_Trending/cs/cs249r_book

容器镜像信息

可用镜像

  • Linux镜像ghcr.io/harvard-edge/cs249r_book/quarto-linux
  • Windows镜像ghcr.io/harvard-edge/cs249r_book/quarto-windows

镜像标签

  • latest:最新稳定版
  • main:主分支构建版
  • dev:开发版本
  • 分支特定标签:如feature/new-component

镜像内容

Linux容器预装以下组件:

  • 系统:Ubuntu 22.04
  • TeX Live:完整发行版
  • R:R-base及所有依赖包
  • Python:Python 3.13及依赖
  • Quarto:1.7.31版本
  • 工具:Inkscape、Ghostscript、字体等

本地构建容器

Linux容器构建

docker build -f docker/linux/Dockerfile -t mlsysbook-linux .

Dockerfile定义了完整的构建流程,包含12个主要阶段:

  1. 依赖文件复制
  2. 系统依赖安装
  3. Inkscape安装
  4. Ghostscript安装
  5. TeX Live安装
  6. R安装
  7. R包安装
  8. Python安装
  9. Quarto安装
  10. Python包安装
  11. R包验证
  12. 全面清理

Windows容器构建

docker build -f docker/windows/Dockerfile -t mlsysbook-windows .

运行容器

基本运行命令

# 运行Linux容器
docker run -it --rm -v $(pwd):/workspace mlsysbook-linux /bin/bash

# 在容器内构建项目
quarto render quarto/index.qmd --to html

Docker Compose支持

虽然项目目前未提供docker-compose.yml文件,但可创建以下配置实现一键部署:

version: '3'
services:
  mlsysbook:
    image: ghcr.io/harvard-edge/cs249r_book/quarto-linux:latest
    volumes:
      - .:/workspace
    working_dir: /workspace
    command: quarto render quarto/index.qmd --to html

保存为docker-compose.yml后,运行:

docker-compose up

使用GitHub Actions自动构建

项目提供了完整的GitHub Actions工作流配置:

  • quarto-build-container.yml:容器化构建工作流
  • build-linux-container.yml:Linux容器构建工作流
  • build-windows-container.yml:Windows容器构建工作流

可通过以下命令手动触发构建测试:

gh workflow run quarto-build-container.yml --field os=ubuntu-latest --field format=html

容器维护与更新

定期更新

容器每周自动重建:

  • Linux容器:每周日0点
  • Windows容器:每周日2点

手动更新

# 拉取最新镜像
docker pull ghcr.io/harvard-edge/cs249r_book/quarto-linux:latest

# 重新构建本地镜像
docker build --no-cache -f docker/linux/Dockerfile -t mlsysbook-linux .

故障排除

常见问题解决

  1. 容器构建失败

    • 检查容器构建日志:GitHub Actions
    • 验证依赖文件是否最新
    • 本地测试构建:docker build -t test .
  2. 构建问题

    • 确认容器存在:ghcr.io/harvard-edge/cs249r_book/quarto-linux:latest
    • 验证容器依赖是否完整
    • 与传统构建日志对比
  3. 性能问题

    • 监控容器拉取时间
    • 检查容器内磁盘空间
    • 验证内存分配

回滚方案

如果容器化构建出现问题,可回退到传统构建方式:

# 使用传统构建工作流
gh workflow run quarto-build-baremetal.yml

安全考虑

  • 使用官方Ubuntu基础镜像
  • 最小化攻击面
  • 定期更新基础镜像
  • 启用GitHub安全扫描
  • 所有构建在隔离容器中运行

未来增强计划

  1. 多阶段构建:减小镜像体积
  2. Windows容器优化:提升Windows构建性能
  3. 分层优化:加快镜像拉取速度
  4. 并行构建:支持多种格式并行构建

相关文档

【免费下载链接】cs249r_book Collaborative book for CS249r: Tiny Machine Learning 【免费下载链接】cs249r_book 项目地址: https://gitcode.com/GitHub_Trending/cs/cs249r_book

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值