🚀 Docker 镜像自动构建系统

End-to-End R&D Automation with OpenClaw + Claude Code

版本 1.0.0
📅 2026 年 3 月 18 日
🔧 Python 3.11 + FastAPI
🐳 Docker 20.10+

执行摘要

本系统是一套完整的Docker 镜像自动化 DevOps 平台,集成了镜像自动构建安全漏洞扫描私有仓库推送三大核心功能。系统采用微服务架构设计, 支持高并发、分布式部署,适用于企业级容器化研发流程的自动化管理。

3
核心模块
50+
API 端点
99.9%
可用性目标
<5min
平均构建时间

目录

核心功能模块

🏗️
Docker 镜像自动构建
从 Git 仓库克隆代码,自动解析 Dockerfile,执行镜像构建,支持多平台、多标签、构建缓存优化
🔒
安全漏洞扫描
集成 Trivy/Clair 等主流扫描器,检测 OS 包漏洞、依赖项漏洞、配置错误、敏感信息泄露
📦
私有仓库推送
支持 Harbor、Docker Registry、AWS ECR 等多种私有仓库,自动认证、批量推送、进度跟踪

Docker 镜像自动构建模块

核心能力

支持的源代码类型

类型 描述 示例
Git Git 仓库 https://github.com/user/repo.git
Local 本地目录 /path/to/context
URL 远程归档 https://example.com/context.tar.gz

构建配置示例

{
  "project_id": "proj_001",
  "source": {
    "type": "git",
    "url": "https://github.com/example/app.git",
    "branch": "main"
  },
  "image": {
    "name": "myapp",
    "tags": ["latest", "v1.0.0"],
    "platform": ["linux/amd64"]
  },
  "options": {
    "no_cache": false,
    "pull_base_image": true,
    "timeout_seconds": 3600,
    "max_retries": 3
  }
}

构建流程状态机

PENDING
PREPARING
BUILDING
COMPLETED

安全漏洞扫描模块

扫描引擎

🔍
Trivy (默认)
Aqua Security 开源的漏洞扫描器,快速、全面、易用
🛡️
Clair
CoreOS 开发的静态分析工具,适合 CI/CD 集成
🔧
自定义扫描器
支持插件扩展,可集成 Snyk、SonarQube 等

漏洞严重性分级

级别 CVSS 评分 处理策略 标识
CRITICAL 9.0-10.0 默认阻断部署 阻断
HIGH 7.0-8.9 可配置阻断 警告
MEDIUM 4.0-6.9 记录 记录
LOW 0.1-3.9 记录 记录

扫描范围

合规策略配置

{
  "compliance_policy": {
    "name": "Production Security Policy",
    "severity_threshold": "HIGH",
    "block_on_critical": true,
    "block_on_high": false,
    "allowed_cves": ["CVE-2023-XXXXX"],
    "ignored_packages": ["dev-dependency-*"]
  }
}

私有仓库推送模块

支持的仓库类型

类型 供应商 认证方式
Harbor VMware Basic / Token
Docker Registry Docker Inc Basic
AWS ECR Amazon IAM
Azure ACR Microsoft Service Principal
Google GCR Google Service Account
Aliyun ACR 阿里云 AccessKey

推送功能

系统架构设计

Client Layer
Web UI / CLI / API
API Gateway
FastAPI Application
BuildManager
ScanManager
PushManager
DockerEngine
TrivyAdapter
RegistryClient
PostgreSQL
Redis
Docker Daemon
Harbor/ECR

技术分层

层级 技术选型
API 框架 FastAPI + Uvicorn
数据验证 Pydantic
数据库 PostgreSQL 15
缓存 Redis 7
任务队列 Celery + Redis
Docker SDK docker-py
监控 Prometheus + Grafana

API 接口设计

RESTful 端点

资源 GET POST PUT DELETE
/builds 列表 创建 - -
/builds/{id} 详情 - - -
/scans 列表 创建 - -
/pushes 列表 创建 - -
/registries 列表 注册 更新 删除

API 使用示例

# 创建构建任务
curl -X POST http://localhost:8000/api/v1/builds \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "proj_001",
    "source": {
      "type": "git",
      "url": "https://github.com/example/app.git",
      "branch": "main"
    },
    "image": {
      "name": "myapp",
      "tags": ["latest", "v1.0.0"]
    }
  }'

# 响应
{
  "build_id": "build_abc123",
  "status": "pending",
  "message": "Build created successfully",
  "estimated_duration": 300
}

部署方案

环境要求

Docker Compose 部署

# 启动所有服务
docker-compose up -d

# 查看服务状态
docker-compose ps

# 查看应用日志
docker-compose logs -f app

# 停止服务
docker-compose down

服务组件

服务 端口 说明
app 8000 主应用服务 (FastAPI)
db 5432 PostgreSQL 数据库
redis 6379 Redis 缓存 & 消息队列
celery-worker - Celery 异步任务 worker
trivy - Trivy 安全扫描器

安全设计

认证机制

Step 1
用户登录 → 验证凭据 → 生成 JWT Token
Step 2
客户端存储 Token (localStorage/cookie)
Step 3
请求携带 Token → 中间件验证 → 授权访问

安全加固措施

🔐
HTTPS 加密
强制加密传输,防止中间人攻击
🎫
JWT 认证
Token 签名验证,防止伪造
🔑
密码加密
bcrypt 加密存储,加盐哈希
🛡️
SQL 注入防护
ORM 参数化查询,防止注入
速率限制
防 DDoS 攻击,保护 API
📝
审计日志
操作追踪,安全事件记录

技术栈总览

🐍
后端框架
FastAPI, Pydantic, SQLAlchemy,
Celery, Redis, Docker SDK
🗄️
数据存储
PostgreSQL 15 (主数据库)
Redis 7 (缓存 & 消息队列)
🐳
容器技术
Docker 20.10+
Docker Compose 2.0+
📊
监控运维
Prometheus (指标收集)
Grafana (可视化仪表盘)

项目文件结构

docker-auto-build/
├── src/
│   ├── config/              # 配置管理
│   │   └── settings.py
│   ├── docker_builder/      # Docker 构建模块
│   │   ├── models.py
│   │   ├── docker_engine.py
│   │   └── build_manager.py
│   ├── security_scanner/    # 安全扫描模块
│   │   ├── models.py
│   │   ├── scanner_adapter.py
│   │   ├── trivy_scanner.py
│   │   └── scan_manager.py
│   ├── registry_pusher/     # 仓库推送模块
│   │   ├── models.py
│   │   ├── registry_client.py
│   │   └── push_manager.py
│   ├── api/                 # API 路由
│   │   └── routes.py
│   └── main.py              # 应用入口
├── docs/                    # 文档
│   ├── product_overview.md
│   └── system_architecture.md
├── tests/                   # 测试用例
├── requirements.txt         # Python 依赖
├── docker-compose.yml       # Docker 编排
├── Dockerfile               # 容器镜像
└── .env.example             # 环境变量模板