如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
🚀 欢迎通过https://github.com/***/messense%E6%94%AF%E6%8C%81%E6%88%91%E6%88%90%E4%B8%BA%E5%85%A8%E8%81%8C%E5%BC%80%E6%BA%90%E5%BC%80%E5%8F%91%E8%80%85
用于使用https://github.com/richfelker/musl-cross-make编译静态Rust二进制文件的Docker镜像,灵感来源于https://github.com/emk/rust-musl-builder
目前我们在https://hub.docker.com/r/messense/rust-musl-cross/%EF%BC%8C%E6%94%AF%E6%8C%81x86_64(amd64)%E5%92%8Caarch64(arm64)%E6%9E%B6%E6%9E%84%E3%80%82
| Rust工具链 | 交叉编译目标 | Docker镜像标签 |
|---|---|---|
| stable | aarch64-unknown-linux-musl | aarch64-musl |
| stable | arm-unknown-linux-musleabi | arm-musleabi |
| stable | arm-unknown-linux-musleabihf | arm-musleabihf |
| stable | armv5te-unknown-linux-musleabi | armv5te-musleabi |
| stable | armv7-unknown-linux-musleabi | armv7-musleabi |
| stable | armv7-unknown-linux-musleabihf | armv7-musleabihf |
| stable | i586-unknown-linux-musl | i586-musl |
| stable | i686-unknown-linux-musl | i686-musl |
| stable | loongarch64-unknown-linux-musl | loongarch64-musl |
| nightly | mips-unknown-linux-musl | mips-musl |
| nightly | mips64-openwrt-linux-musl | mips64-openwrt-musl |
| nightly | mips64-unknown-linux-muslabi64 | mips64-muslabi64 |
| nightly | mips64el-unknown-linux-muslabi64 | mips64el-muslabi64 |
| nightly | mipsel-unknown-linux-musl | mipsel-musl |
| nightly | powerpc64-unknown-linux-musl | powerpc64-musl |
| stable | powerpc64le-unknown-linux-musl | powerpc64le-musl |
| stable | riscv64gc-unknown-linux-musl | riscv64gc-musl |
| nightly | s390x-unknown-linux-musl | s390x-musl |
| stable | x86_64-unknown-linux-musl | x86_64-musl |
例如,要使用armv7-unknown-linux-musleabihf目标,首先拉取镜像:
docker pull ghcr.io/rust-cross/rust-musl-cross:armv7-musleabihf
# 也可在Docker Hub获取
# docker pull messense/rust-musl-cross:armv7-musleabihf
然后可以执行:
alias rust-musl-builder='docker run --rm -it -v "$(pwd)":/home/rust/src ghcr.io/rust-cross/rust-musl-cross:armv7-musleabihf'
rust-musl-builder cargo build --release
此命令假设$(pwd)是可读写的。它将在armv7-unknown-linux-musleabihf目录中输出二进制文件。目前,它不会尝试在构建之间缓存库,因此最适合用于制作最终发布版本。
部分镜像还以符合Docker约定的标签名称发布,这些标签与Docker的TARGETARCH构建参数(例如amd64、arm64)匹配。别名标签格式为<TARGETARCH>-musl:
| 主标签 | 别名标签 |
|---|---|
aarch64-musl | arm64-musl |
x86_64-musl | amd64-musl |
i686-musl | 386-musl |
loongarch64-musl | loong64-musl |
powerpc64-musl | ppc64-musl |
powerpc64le-musl | ppc64le-musl |
mips64-muslabi64 | mips64-musl |
mips64el-muslabi64 | mips64le-musl |
mipsel-musl | mipsle-musl |
riscv64gc-musl | riscv64-musl |
这使得多平台Dockerfile可以直接使用TARGETARCH,无需任何显式构建参数:
ARG TARGETARCH=amd64
FROM ghcr.io/rust-cross/rust-musl-cross:${TARGETARCH}-musl AS builder
Docker会根据原生运行平台自动设置TARGETARCH,因此相同的docker buildx build --platform linux/amd64,linux/arm64命令会在每个平台上选择正确的镜像,无需额外配置。
[!NOTE]
arm变体(arm-musleabi、arm-musleabihf、armv7-musleabi、armv7-musleabihf、armv5te-musleabi)没有别名,因为它们都映射到GOARCH=arm,导致单一规范的arm-musl别名存在歧义。
rust-musl-cross借助https://github.com/richfelker/musl-cross-make,使用http://www.musl-libc.org/、http://www.musl-libc.org/how.html简化编译过程,并支持新版rustup的target功能。
我们默认安装stable Rust,若需切换到beta/nightly Rust,可基于我们的Docker镜像扩展,例如为目标x86_64-unknown-linux-musl使用beta Rust:
FROM ghcr.io/rust-cross/rust-musl-cross:x86_64-musl
RUN rustup update beta && \
rustup target add --toolchain beta x86_64-unknown-linux-musl
可在镜像内使用musl-strip命令剥离二进制文件,例如:
docker run --rm -it -v "$(pwd)":/home/rust/src ghcr.io/rust-cross/rust-musl-cross:armv7-musleabihf musl-strip /home/rust/src/target/release/example
基于MIT许可证授权
来自真实用户的反馈,见证轩辕镜像的优质服务