x86麒麟系统打包arm架构镜像

正确的发布文件名是带版本号的,不是 buildx-linux-amd64。

按下面重新执行。

先重装正确的 buildx
rm -f /usr/local/lib/docker/cli-plugins/docker-buildx
mkdir -p /usr/local/lib/docker/cli-plugins
curl -L https://github.com/docker/buildx/releases/download/v0.32.1/buildx-v0.32.1.linux-amd64 -o /usr/local/lib/docker/cli-plugins/docker-buildx
chmod +x /usr/local/lib/docker/cli-plugins/docker-buildx
ls -lh /usr/local/lib/docker/cli-plugins/docker-buildx
/usr/local/lib/docker/cli-plugins/docker-buildx version
正常的话,文件大小应该是几十 MB,不会再是 9 字节。

方法二:
mkdir -p /usr/local/lib/docker/cli-plugins
curl -L https://github.com/docker/buildx/releases/latest/download/buildx-linux-amd64 -o /usr/local/lib/docker/cli-plugins/docker-buildx
chmod +x /usr/local/lib/docker/cli-plugins/docker-buildx
docker buildx version

openclaw镜像

`

============================================================

OpenClaw 增强镜像(基于官方镜像)

============================================================

用途:在官方 ghcr.io/openclaw/openclaw 之上增加:

- Python3 + pip + 常用数据/Office/MySQL 相关包

- LibreOffice(无头)用于 doc/docx/xls/xlsx 等格式互转

- 旧版 Word 只读(antiword)、部分 catdoc

- 常用 Linux 工具(vim、压缩、网络诊断等)

重要说明:

1. 官方 OpenClaw 镜像当前基于 Debian(而不是 Alpine),因此这里使用 apt-get。

2. 在 x86(amd64)上构建 linux/arm64 时,必须启用 binfmt + QEMU(用户态模拟),否则 RUN 会报:

exec /bin/sh: exec format error

Windows(Docker Desktop):在 PowerShell 执行一次

docker run --privileged --rm tonistiigi/binfmt --install all

然后再:docker buildx build --platform linux/arm64 ...

3. 本镜像固定为 linux/arm64(aarch64);在 x86 上构建时务必同时带 --platform linux/arm64:

docker buildx build --platform linux/arm64 -f Dockerfile.openclaw-enhanced -t your-registry/openclaw:enhanced --load .

4. legacy builder(旧版构建器)无法稳定处理跨架构 RUN,请用 buildx。

说明:镜像体积会明显大于官方 slim 版(LibreOffice 体积较大)。

============================================================

默认 linux/arm64(aarch64);勿在 FROM 写死常量平台,以满足 buildx 检查;可用 --build-arg 覆盖

ARG TARGETPLATFORM=linux/arm64
FROM --platform=$TARGETPLATFORM ghcr.io/openclaw/openclaw:latest

USER root

---- 系统包 ----

default-mysql-client:mysql 命令行客户端

libmysqlclient-dev + build-essential:mysqlclient、pandas 等可能需编译

fonts-dejavu-core:LibreOffice/报表导出时避免缺字体告警

RUN apt-get update &&
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends
python3 python3-pip python3-venv python3-dev
build-essential pkg-config
default-mysql-client libmariadb-dev-compat libmariadb-dev
vim nano less procps net-tools iputils-ping dnsutils curl wget ca-certificates
unzip zip gzip bzip2 xz-utils tar
jq git
fonts-dejavu-core
libreoffice-writer libreoffice-calc libreoffice-impress libreoffice-common
antiword catdoc
&& rm -rf /var/lib/apt/lists/*

---- Python 依赖 ----

Debian/Ubuntu 系启用 PEP 668(externally-managed-environment),容器内需显式允许写入系统 site-packages

MySQL:pymysql(纯 Python)/ mysqlclient(C 扩展,性能更好)/ sqlalchemy

Excel:pandas + openpyxl + xlsxwriter + xlrd(读旧 xls)+ xlwt(写旧 xls)

Word:python-docx / docxtpl

其它常用:requests、httpx、python-dotenv、pydantic 等

RUN python3 -m pip install --no-cache-dir --break-system-packages --upgrade pip setuptools wheel &&
python3 -m pip install --no-cache-dir --break-system-packages
pymysql mysqlclient sqlalchemy alembic
pandas numpy openpyxl xlrd xlwt xlsxwriter
python-docx docxtpl
requests httpx tenacity python-dotenv
pydantic pydantic-settings jsonschema
matplotlib seaborn tabulate
beautifulsoup4 lxml
cryptography

与部分脚本里写 python 的习惯对齐

RUN ln -sf /usr/bin/python3 /usr/local/bin/python

无头 LibreOffice 常用环境变量(避免找不到 display;容器内转换用)

ENV SAL_USE_VCLPLUGIN=svp
HOME=/home/node

USER node

保持官方镜像默认入口与 CMD,无需覆盖

`

posted @ 2026-03-28 22:10  竹石2020  阅读(1)  评论(0)    收藏  举报