#cargo-subcommand #dependencies #cli #crates

app cargo-build-dependencies

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

5 个版本

0.1.3 2020 年 7 月 1 日
0.1.2 2020 年 7 月 1 日
0.1.1 2020 年 5 月 17 日
0.1.0 2020 年 5 月 17 日

646Cargo 插件

38 每月下载量

MIT 许可证

12KB
236

cargo-build-dependencies

Crates.io

此工具扩展了 Cargo,允许您仅构建给定的 Rust 项目的依赖项。这对于 Docker 构建非常有用,因为每个构建步骤都会被缓存。构建依赖项所需的时间通常是整体构建时间的重要组成部分。因此,在 Docker 构建中,提前单独构建依赖项比主要构建更有益。由于依赖项构建步骤将被缓存,当项目自身的源代码更改时,无需重新构建依赖项。

基于 https://github.com/nacardin/cargo-build-deps

安装

cargo安装 cargo-build-dependencies

用法

cargobuild-dependencies

示例

将 Dockerfile 从

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

改为

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

依赖项

~0.6–1MB
~17K SLoC