# docker-rk **Repository Path**: kjfb/docker-rk ## Basic Information - **Project Name**: docker-rk - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-15 - **Last Updated**: 2026-09-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RK3562 编译环境 Docker 这是一个用于RK3562平台开发的Docker编译环境,包含了所有必要的工具和依赖。 ## 功能特点 - 基于 Ubuntu 22.04 LTS - 包含完整的交叉编译工具链 - 支持 Python 2 和 Python 3 - 包含设备树编译器、内核构建工具等 - 配置了合适的开发用户和权限 ## 分层镜像设计 本环境采用**分层构建**,便于时间紧急时快速验证新增的依赖/工具/编译产物: | 层 | Dockerfile | 镜像标签 | 说明 | | --- | --- | --- | --- | | 基础层 | `Dockerfile.enhanced` | `rk3562-build-env:latest` | 完整编译环境,构建耗时长,应尽量复用/缓存 | | 扩展层 | `Dockerfile.extend_file` | `rk3562-build-env:ext` | 叠加在基础层之上,**增量重建,秒级出结果** | 基础层内容稳定后一般不需重建;日常改动只需放入扩展层,重建时基础层走缓存,仅重建扩展层,因此非常适合紧急验证。 ## 快速开始 ### 1. 给脚本添加执行权限 ```bash chmod +x build_and_run.sh ``` ### 2. 构建并运行 ```bash ./build_and_run.sh all ``` ## 使用方法 ```bash ./build_and_run.sh [选项] ``` | 选项 | 说明 | | --- | --- | | `build` | 构建基础镜像 + 扩展镜像(`Dockerfile.enhanced` → `Dockerfile.extend_file`) | | `base` | 仅构建基础镜像 `Dockerfile.enhanced` | | `extend` | 仅构建扩展镜像 `Dockerfile.extend_file`(增量重建,用于紧急验证) | | `run` | 运行容器(存在扩展镜像时优先使用扩展镜像) | | `shell` | 进入容器 shell | | `clean` | 清理 Docker 镜像和容器 | | `all` | 构建(基础 + 扩展)并运行容器 | | `help` | 显示帮助信息 | 额外参数会透传给 `docker build`,例如: ```bash # 扩展层强制不使用缓存重建 ./build_and_run.sh extend --no-cache # 在基础镜像中直接叠加额外的 apt 软件包(无需改动 Dockerfile) ./build_and_run.sh base --build-arg EXTEND_PACKAGES="libcjson-dev ffmpeg" ``` ## 典型验证流程 ```bash ./build_and_run.sh base # 首次/基础环境变化时构建(慢,之后走缓存) ./build_and_run.sh extend # 改扩展后只重建扩展层(快) ./build_and_run.sh all # 基础 + 扩展 + 直接进容器 ./build_and_run.sh run # 优先用扩展镜像运行 ./build_and_run.sh clean # 全部清理 ``` ## 如何添加扩展 1. **新增依赖**:在 `Dockerfile.extend_file` 的「扩展依赖安装区」追加软件包。 2. **编译扩展功能**:在「扩展编译区」把示例探针替换为真实的编译命令(工具程序、内核模块、第三方库等)。 3. 重新构建扩展层: ```bash ./build_and_run.sh extend ``` > 说明:扩展层中的探针程序 `/usr/local/bin/extend_probe` 仅用于自检扩展链路是否可用。基础镜像中的 `EXTEND_PACKAGES` 构建参数只是临时验证手段,长期扩展仍建议写入 `Dockerfile.extend_file`。 ## 挂载目录 运行容器时默认挂载以下宿主目录: | 容器内路径 | 宿主路径 | 说明 | | --- | --- | --- | | `/workspace` | Docker 卷 `rk3562-workspace` | 持久化工作空间 | | `/shared` | `./shared` | 脚本同级共享目录 | | `/sdk` | `HZ-RK3562MINI-LINUX_5.10_SDK_20260107_V1.6` | RK3562 SDK | | `/sdk_rk3506` | `sdk_rk3506` | RK3506 SDK | | `/dev/bus/usb` | `/dev/bus/usb` | USB 设备(烧写等) | | `/tmp` | `/tmp` | 临时目录 | ## 目录结构 ``` rk3562/ ├── build_and_run.sh # 构建/运行脚本(自动串起基础层与扩展层) ├── Dockerfile.enhanced # 基础镜像 ├── Dockerfile.extend_file # 扩展镜像(叠加在基础镜像之上) ├── README.md └── shared/ # 共享目录,挂载到容器 /shared ```