1use std::process::Command;
2
3use crate::Result;
4
5pub 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 let mut r = cmd.spawn()?;
20 r.wait()?;
21 Ok(())
22 }
23}
24
25pub 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}