2026-06-08 18:26:30 +08:00
2026-06-08 18:26:30 +08:00

RK1808 Docker 服务部署说明

项目说明

本项目运行于 RK1808 边缘计算设备,通过 Docker 容器运行目标识别服务。

当前部署方案适用于:

  • RK1808
  • Debian 12 Bookworm
  • Linux Kernel 4.4.194
  • ARM64aarch64

部署流程

部署分为两步:

第一步:初始化宿主机

执行:

bash init_host.sh

主要完成以下工作:

Docker 安装

  • 安装 Docker Engine
  • 安装 Buildx
  • 安装 Compose 插件
  • 配置 Docker 开机启动

Docker 镜像加速

配置:

https://docker.1panel.live/

Docker 存储驱动修复

强制使用:

overlay2

关闭:

containerd-snapshotter

避免 Docker 29.x 在 Linux Kernel 4.4 上出现构建失败。

FFmpeg 运行库检查

检查以下依赖:

/lib/libavformat.so.58
/lib/libavcodec.so.58
/lib/libavutil.so.56
/lib/libswresample.so.3
/lib/libswscale.so.5

自动检查:

libswscale.so.5

软链接是否存在。

RK1808 NPU 驱动检查

检查:

/dev/galcore
/dev/rga
/dev/vpu_service
/dev/dri/card0
/lib/npu

若:

/dev/galcore

不存在,则自动加载:

galcore.ko

并写入:

/etc/modules-load.d/galcore.conf

实现开机自动加载。

最终输出

脚本结束后会输出:

Docker状态
Docker镜像加速状态
Docker存储驱动状态
FFmpeg依赖状态
NPU驱动状态
设备节点状态

第二步:部署项目

执行:

bash deploy_fire_leave.sh

主要完成以下工作:

项目文件检查

检查:

Dockerfile
start.sh
rundocker.sh
mp4-merge_0.1.11-1_arm64.deb
models/yolov5

YOLOv5 动态库检查

检查:

libavformat
libavcodec
libavutil
libswresample
libswscale

是否缺失。

NPU环境检查

检查:

/dev/galcore
/dev/rga
/dev/vpu_service
/dev/dri/card0
/lib/npu

是否正常。

Docker 镜像构建

执行:

docker build -t fire_leave:latest .

启动脚本检查

检查:

rundocker.sh

是否存在并具有执行权限。

最终输出

脚本结束后会输出:

项目文件状态
动态库状态
设备节点状态
Docker镜像状态
启动脚本状态

启动服务

执行:

./rundocker.sh

历史问题记录

问题1libswscale.so.5 缺失

现象:

error while loading shared libraries:
libswscale.so.5

原因:

系统存在:

libswscale.so.5.7.100

但缺少:

libswscale.so.5

解决:

ln -sf /usr/lib/libswscale.so.5.7.100 /usr/lib/libswscale.so.5
ldconfig

问题2Docker 29.x 构建失败

现象:

failed to get xattr
operation not supported

原因:

Docker 29 默认启用了:

containerd-snapshotter

而 RK1808 当前内核:

4.4.194

兼容性较差。

错误配置:

Storage Driver: overlayfs
driver-type: io.containerd.snapshotter.v1

解决:

强制使用:

{
  "features": {
    "containerd-snapshotter": false
  },
  "storage-driver": "overlay2"
}

最终状态:

Storage Driver: overlay2

问题3/dev/galcore 不存在

现象:

/dev/galcore
不存在

原因:

系统启动后未自动加载:

galcore.ko

解决:

insmod /lib/modules/$(uname -r)/galcore.ko

写入:

echo "galcore" > /etc/modules-load.d/galcore.conf

实现开机自动加载。


当前验证环境

系统:
Debian GNU/Linux 12 (bookworm)

架构:
aarch64

内核:
4.4.194

Docker:
29.5.2

Storage Driver:
overlay2

Cgroup:
v1

NPU驱动:
Galcore 6.4.6.5.351518

镜像:
fire_leave:latest

后续批量部署建议

新设备部署仅需:

bash init_host.sh

bash deploy_fire_leave.sh

./rundocker.sh

无需再次手动排查 Docker、FFmpeg、NPU 驱动等环境问题。

Description
动火离人docker-build
Readme 66 MiB
Languages
Shell 94.5%
Dockerfile 5.5%