#cargo-build #cargo #docker-build #cargo-subcommand #crates #dependencies #cargo-lock

app cargo-build-deps

A cargo 子命令,用于构建依赖项,通过允许在构建之前构建和缓存依赖项来加速 Docker 构建

5 个版本

使用旧的 Rust 2015

0.2.0 2021 年 1 月 28 日
0.1.5 2020 年 2 月 4 日
0.1.4 2018 年 3 月 7 日
0.1.0 2018 年 2 月 9 日

#438 in Cargo 插件

Download history • Rust 包仓库 40/week @ 2024-03-30 • Rust 包仓库 52/week @ 2024-04-06 • Rust 包仓库 20/week @ 2024-04-13 • Rust 包仓库 29/week @ 2024-04-20 • Rust 包仓库 44/week @ 2024-04-27 • Rust 包仓库 20/week @ 2024-05-04 • Rust 包仓库 18/week @ 2024-05-11 • Rust 包仓库 18/week @ 2024-05-18 • Rust 包仓库 16/week @ 2024-05-25 • Rust 包仓库 10/week @ 2024-06-01 • Rust 包仓库 36/week @ 2024-06-08 • Rust 包仓库 23/week @ 2024-06-15 • Rust 包仓库 18/week @ 2024-06-22 • Rust 包仓库 54/week @ 2024-06-29 • Rust 包仓库 138/week @ 2024-07-06 • Rust 包仓库 110/week @ 2024-07-13 • Rust 包仓库

每月 324 次下载

MIT/Apache

11KB
173

cargo-build-deps

Build Status Crates.io

此工具扩展了 Cargo,允许您仅构建给定 Rust 项目中的依赖项。这对于 Docker 构建很有用,其中每个构建步骤都会被缓存。构建依赖项所需的时间通常是整体构建时间的一个重要部分。因此,在 Docker 构建中,最好在主构建之前先构建依赖项。由于依赖项构建步骤将被缓存,当项目本身的源代码发生变化时,不需要重新构建依赖项。

受 (http://atodorov.org/blog/2017/08/30/speeding-up-rust-builds-inside-docker/) 启发

安装

cargo安装 cargo-build-deps

用法

cargobuild-deps

示例

将 Dockerfile 从

FROM rust:1 as rust-builder
RUN mkdir /tmp/PROJECT_NAME
WORKDIR /tmp/PROJECT_NAME
COPY . .
RUN cargo build  --release

修改为

FROM rust:1 as rust-builder
RUN cargo install cargo-build-deps
RUN cd /tmp && USER=root cargo new --bin PROJECT_NAME
WORKDIR /tmp/PROJECT_NAME
COPY Cargo.toml Cargo.lock ./
RUN cargo build-deps --release
COPY src /tmp/PROJECT_NAME/src
RUN cargo build  --release

许可证

根据以下任一许可证发布

贡献

除非您明确表示,否则您提交的任何贡献,按照 Apache-2.0 许可证的定义,都应按上述方式双许可,不得附加任何额外条款或条件。

依赖项

~0.9–1.2MB
~17K SLoC