#cargo-build #cargo #cargo-subcommand #crates #dependencies #cli #performance

app cargo-bdeps

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

3 个版本

使用旧的 Rust 2015

0.1.7 2020年7月7日
0.1.6 2020年6月18日
0.1.5 2020年6月18日

#42 in #crates

31 每月下载

MIT/Apache

10KB
139

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.23 as rust-builder
RUN mkdir /tmp/PROJECT_NAME
WORKDIR /tmp/PROJECT_NAME
COPY . .
RUN cargo build  --release

改为

FROM rust:1.23 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 许可证的定义,任何贡献都应如上双许可,无需任何附加条款或条件。

依赖项

~1.5MB
~24K SLoC