4 releases

0.1.3 Feb 24, 2019
0.1.2 Feb 24, 2019
0.1.1 Feb 24, 2019
0.1.0 Feb 24, 2019

#1898 in Development tools

Download history 2853/week @ 2024-10-12 4498/week @ 2024-10-19 5260/week @ 2024-10-26 5048/week @ 2024-11-02 5202/week @ 2024-11-09 5042/week @ 2024-11-16 6440/week @ 2024-11-23 5830/week @ 2024-11-30 5068/week @ 2024-12-07 4987/week @ 2024-12-14 2018/week @ 2024-12-21 2130/week @ 2024-12-28 5911/week @ 2025-01-04 5689/week @ 2025-01-11 7020/week @ 2025-01-18 5031/week @ 2025-01-25

24,138 downloads per month
Used in 7 crates (via risc0-build)

MIT license

9KB
180 lines

use docker_generate::DockerFile;

let build = 
    DockerFile::new()
    .comment("build stage")
    .from_alias("build", "golang:alpine")
    .run("cd /src && go build -o goapp");
let run = 
    DockerFile::new()
    .comment("run stage")
    .from("alpine")
    .workdir("/app")
    .copy_from("build", "/src/goapp", "/app/")
    .entrypoint(&["./goapp"]);

let file = DockerFile::new()
         .dockerfile(build)
         .dockerfile(run);

println!("{}", file.to_string());
# build stage
FROM golang:alpine as build
RUN cd /src && go build -o goapp

# run stage
FROM alpine
WORKDIR /app
COPY --from=build /src/goapp /app/
ENTRYPOINT ["./goapp"]

OR

let build = 
    DockerFile::new()
    .add("#", "My app".into())
    .add("FROM", "alpine".into())
    .add("WORKDIR", "/app".into())
    .add("COPY", vec![".", "/app"].into())
    .add("CMD", DockerFieldType::Array(vec!["./app/main"]));
# My app
FROM alpine
WORKDIR /app
COPY . /app
CMD ["./app/main"]

No runtime deps