
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
clux/muslrust 是一个基于 GitHub Actions 每日定时构建的 Docker 镜像(构建源:https://github.com/clux/muslrust%EF%BC%89%E3%80%82%E8%AF%A5%E9%95%9C%E5%83%8F%E9%9B%86%E6%88%90%E4%BA%86 Rust 编程语言的 stable 和 nightly 版本,并包含通过 musl C 标准库编译的 C 运行时依赖。其核心用途是为 Rust 应用开发和编译提供标准化环境,尤其适用于需要静态链接以生成独立可执行文件的场景,满足容器化环境中对最小化依赖和可移植性的需求。
x86_64-unknown-linux-musl 目标进行静态链接。镜像通过标签区分 Rust 版本,默认提供以下标签:
stable:包含 Rust stable 版本及对应 musl 工具链nightly:包含 Rust nightly 版本及对应 musl 工具链1. 拉取镜像
bash# 拉取 stable 版本(推荐生产环境) docker pull clux/muslrust:stable # 拉取 nightly 版本(用于试验新特性) docker pull clux/muslrust:nightly
2. 运行容器
通过 docker run 启动容器,支持交互式开发或命令行编译:
交互式开发环境
bash# 启动包含当前目录代码的交互式 shell docker run --rm -it -v $(pwd):/app -w /app clux/muslrust:stable sh
-v $(pwd):/app:挂载本地当前目录到容器内 /app 路径-w /app:设置工作目录为 /app--rm:容器退出后自动清理-it:启用交互式终端直接编译项目
在宿主机执行命令,编译容器内的 Rust 项目:
bash# 静态编译项目(生成 x86_64-unknown-linux-musl 目标产物) docker run --rm -v $(pwd):/app -w /app clux/muslrust:stable \ cargo build --target x86_64-unknown-linux-musl --release
编译产物将输出至宿主机的 ./target/x86_64-unknown-linux-musl/release/ 目录。
示例 1:编译静态可执行文件
假设本地有一个简单的 Rust 项目(Cargo.toml 和 src/main.rs),通过以下命令编译为静态链接的可执行文件:
bash# 挂载项目目录并执行静态编译 docker run --rm -v $(pwd):/app -w /app clux/muslrust:stable \ cargo build --target x86_64-unknown-linux-musl --release
编译完成后,可执行文件位于 ./target/x86_64-unknown-linux-musl/release/,可直接在任何 Linux 系统运行(无需依赖外部库)。
示例 2:集成到 Dockerfile 构建
在多阶段构建中使用该镜像编译应用,最终产物部署到最小化镜像:
dockerfile# 阶段 1:使用 muslrust 编译应用 FROM clux/muslrust:stable AS builder WORKDIR /app COPY . . RUN cargo build --target x86_64-unknown-linux-musl --release # 阶段 2:基于 scratch 镜像部署静态产物 FROM scratch COPY --from=builder /app/target/x86_64-unknown-linux-musl/release/my-app / ENTRYPOINT ["/my-app"]
容器支持通过环境变量自定义构建行为,常用变量如下:
| 环境变量 | 说明 | 默认值 |
|---|---|---|
CARGO_HOME | Cargo 缓存目录 | /root/.cargo |
RUSTUP_HOME | Rustup 工具链目录 | /root/.rustup |
RUSTFLAGS | 自定义 Rust 编译参数(如链接选项) | 空 |
TARGET | 默认编译目标(如 x86_64-unknown-linux-musl) | 自动匹配当前架构 |
示例:自定义编译参数
bashdocker run --rm -v $(pwd):/app -w /app \ -e RUSTFLAGS="-C link-arg=-s" \ # 去除符号表减小二进制体积 clux/muslrust:stable \ cargo build --release --target x86_64-unknown-linux-musl
通过 docker-compose.yml 简化多步骤构建或持续开发:
yamlversion: '3' services: rust-builder: image: clux/muslrust:stable volumes: - ./:/app # 挂载本地代码目录 - cargo-cache:/root/.cargo # 持久化 Cargo 缓存(加速重复构建) working_dir: /app command: cargo build --target x86_64-unknown-linux-musl --release volumes: cargo-cache: # 定义缓存卷
运行构建:docker-compose run rust-builder
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务