docker_ctl/
build.rs

1use std::process::Command;
2
3use crate::Result;
4
5/// Builds a container
6pub struct Builder
7{
8  dockerfile: String,
9  tag: String,
10}
11
12impl Builder
13{
14  pub fn build(self) -> Result<()>
15  {
16    let mut cmd = Command::new("docker");
17    cmd.args(["build", "-t", &self.tag, "-f", &self.dockerfile, "."]);
18    // Spawn
19    let mut r = cmd.spawn()?;
20    r.wait()?;
21    Ok(())
22  }
23}
24
25/// Create a builder for building a docker image
26pub fn build(dockerfile: impl Into<String>, tag: impl Into<String>) -> Builder
27{
28  let dockerfile = dockerfile.into();
29  let tag = tag.into();
30  Builder { dockerfile, tag }
31}