dockerfile-build 0.1.1

A Rust library to automate building Docker images from a local Dockerfile
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use std::path::Path;

use flate2::{write::GzEncoder, Compression};

pub fn tarball(path: &str, dockerfile_name: &str) -> Result<Vec<u8>, std::io::Error> {
    let path = Path::new(path);

    let enc = GzEncoder::new(Vec::new(), Compression::default());
    let mut tar = tar::Builder::new(enc);
    if path.is_dir() {
        tar.append_dir_all("./", path)?;
    } else {
        tar.append_path_with_name(path, dockerfile_name)?;
    }
    Ok(tar.into_inner().unwrap().finish().unwrap())
}