
elastio/rust_ci本镜像专为Rust项目持续集成(CI)场景设计,预安装全套Rust开发与CI工具链,旨在减少CI配置复杂度,确保构建环境一致性,加速自动化流程部署。通过集成核心工具,避免重复安装步骤,适用于各类CI/CD平台及本地开发环境标准化。
bashdocker run --rm -v $(pwd):/app -w /app rust-ci-tools cargo test
bash# 运行clippy静态分析(显示警告视为错误) docker run --rm -v $(pwd):/app -w /app rust-ci-tools cargo clippy -- -D warnings # 检查代码格式化 docker run --rm -v $(pwd):/app -w /app rust-ci-tools cargo fmt -- --check
bashdocker run --rm --cap-add=SYS_PTRACE -v $(pwd):/app -w /app rust-ci-tools cargo tarpaulin --out Xml --output-dir ./coverage
yamlname: Rust CI on: [push, pull_request] jobs: quality-check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Run clippy and fmt check uses: docker://rust-ci-tools with: args: sh -c "cargo fmt -- --check && cargo clippy -- -D warnings" test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Run tests with coverage uses: docker://rust-ci-tools with: args: cargo tarpaulin --out Lcov --output-dir ./coverage env: RUST_VERSION: stable
| 变量名 | 说明 | 默认值 |
|---|---|---|
| RUST_VERSION | 指定Rust版本(stable/beta/nightly) | stable |
| CARGO_HOME | cargo缓存目录路径 | /root/.cargo |
| RUSTUP_HOME | rustup工具链安装目录 | /root/.rustup |
| SCCACHE_DIR | sccache缓存目录 | /root/.cache/sccache |
为加速重复构建,可挂载工具缓存目录:
bashdocker run --rm \ -v $(pwd):/app \ -v cargo-cache:/root/.cargo \ -v sccache-cache:/root/.cache/sccache \ -w /app \ rust-ci-tools \ cargo build --release
-u $(id -u):$(id -g)指定当前用户ID,避免生成文件权限问题:
bashdocker run --rm -u $(id -u):$(id -g) -v $(pwd):/app -w /app rust-ci-tools cargo test
SYS_PTRACE权限,CI环境中需配置对应capabilities:1.75.0),避免工具版本变更导致流程中断RUST_VERSION环境变量控制Rust编译器版本,无需更换基础镜像| 功能需求 | 命令示例 |
|---|---|
| 运行单元测试 | cargo test |
| 检查代码格式化 | cargo fmt -- --check |
| 静态代码分析 | cargo clippy -- -D warnings |
| 安全漏洞扫描 | cargo audit |
| 生成覆盖率报告 | cargo tarpaulin --out Html --output-dir ./cov |
| 检测过时依赖 | cargo outdated |
| 构建发布版本 | cargo build --release |




manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务