/cargo-wharf

Cacheable and efficient Docker images builder for Rust

Primary LanguageRustApache License 2.0Apache-2.0

Cargo Wharf - efficient Docker images builder for Rust

Features

  • Efficiently cache crate dependencies.
    Every dependency is built in its isolated environment and cached independently from others.
  • Small output images.
    Only binaries (and eventually mandatory static assets) in the output image. No useless build artifacts.
  • No extra host tools has to be installed.
    Only Docker!
  • Ability to produce test images.
    The container created from that image will do the same as cargo test but in a safe isolated environment.

Usage

Disclaimer #1 Modern Docker with BuildKit enabled is required!

Disclaimer #2 Due to active development and expected breaking changes, cargo-wharf should not be used in production yet.

Usage guide can be found in the BuildKit frontend README.

cargo-wharf-frontend

[Docker Hub] [README] [CHANGELOG]

The custom frontend for BuildKit that produces LLB graph out of Cargo's build plan.

cargo-container-tools

[Docker Hub] [README] [CHANGELOG]

Auxiliary tools that are useful for building Docker images of Rust crates and for cargo-wharf-frontend in particular.

License

cargo-wharf is primarily distributed under the terms of both the MIT license and the Apache License (Version 2.0), with portions covered by various BSD-like licenses.

See LICENSE-APACHE, and LICENSE-MIT for details.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in cargo-wharf by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.