200字
利用雨云服务器编译 ARMv7 Docker 镜像
2025-11-23
2025-11-23

利用雨云服务器编译 ARMv7 Docker 镜像

平常我需要在一些老设备(比如树莓派 3B、全志 H3/H5、RK3288)上运行 Docker 服务,但官方镜像越来越多只提供 amd64arm64,没有 armv7。于是我决定自己编译一套 ARMv7 镜像。结果发现:用雨云的 1 元/天高性能服务器,加上 QEMU 模拟器,就能轻松搞定。

环境介绍

  • 服务器提供商:雨云
  • 机型:美国 洛杉矶 KVM 旗舰版(x86_64 架构)
  • 价格:1 元/天(非常适合短期编译任务)
  • 系统:Ubuntu 22.04 LTS
  • 编译方式:使用 qemu-user-static + buildx 模拟 ARMv7 环境

编译环境准备

apt update
apt install -y docker.io qemu-user-static git build-essential
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker buildx create --use

确认多架构支持:

docker buildx ls

输出中能看到:

Platforms: linux/amd64, linux/arm/v7, linux/arm64

说明编译环境配置成功。

🏗️ 编译目标

这次编译了四个主要软件的 ARMv7 镜像,并推送到了自己的仓库:

软件镜像名版本架构
Giteadocker.wqyblog.cn/gitea/gitea:1.24.61.24.6ARMv7
Gitea Rootlessdocker.wqyblog.cn/gitea/gitea-rootless:1.24.61.24.6ARMv7
MinIOdocker.wqyblog.cn/minio/minio:RELEASE.2024-10-02T17-50-41Z2024.10.02ARMv7
OpenListdocker.wqyblog.cn/openlist/openlist:4.1.34.1.3ARMv7

⚙️ 编译示例:Gitea 1.24.6

git clone https://github.com/go-gitea/gitea.git
cd gitea
git checkout v1.24.6

docker buildx build \
  --platform linux/arm/v7 \
  -t docker.wqyblog.cn/gitea/gitea:1.24.6 \
  --push .

整个编译过程大约 12 分钟(QEMU 模拟比原生慢,但能接受)。雨云提供的 CPU 性能够用,没有出现超时或内存爆炸。

🧾 编译结果验证

编译完成后在树莓派上验证:

docker pull docker.wqyblog.cn/gitea/gitea:1.24.6
docker run -d -p 3000:3000 docker.wqyblog.cn/gitea/gitea:1.24.6

正常启动,无 “exec format error”,网页能正常访问。MinIO、OpenList 同样测试通过。

🪄 编译经验与坑

  1. QEMU 性能不错,但 I/O 是瓶颈。
    解决办法:雨云的高性能机型带 NVMe,编译时快很多。
  2. Go 项目最好手动设定 GOARCH / GOARM
export GOARCH=arm
export GOARM=7
  1. 雨云 1 元方案非常划算
    临时起机器,编完就删,成本比买开发板还低。

🌐 仓库地址

https://docker.wqyblog.cn/
镜像可直接拉取,无需登录、无需加速器。

利用雨云服务器编译 ARMv7 Docker 镜像
作者
Administrator
发表于
2025-11-23
License
CC BY-NC-SA 4.0