Skip to content

orisano/targd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

targd

targd is multistage build helper. targd outputs dependent stage of the specified target stage. (includes target stage)

Installation

go get github.com/orisano/targd

How to use

$ targd
  -f string
    	Dockerfile path (default "Dockerfile")
  -o string
    	generated Dockerfile path (default "-")
  -target string
    	target stage name (required)
$ targd -target test | docker build -f - .

or

$ docker run -v $(PWD):/host orisano/targd -f /host/Dockerfile -target production

Example

# ./Dockerfile
FROM alpine:3.8 as builder
COPY ./depfile ./lockfile ./
RUN install_cmd
COPY . .
RUN build_cmd

FROM builder as test
RUN test_cmd

FROM alpine:3.8 as runtime
COPY --from=builder /bin/app /bin/app
ENTRYPOINT ["/bin/app"]
CMD ["--help"]
$ targd -target test
FROM alpine:3.8 as builder
COPY ./depfile ./lockfile ./
RUN install_cmd
COPY . .
RUN build_cmd

FROM builder as test
RUN test_cmd
$ targd -target runtime
FROM alpine:3.8 as builder
COPY ./depfile ./lockfile ./
RUN install_cmd
COPY . .
RUN build_cmd

FROM alpine:3.8 as runtime
COPY --from=builder /bin/app /bin/app
ENTRYPOINT ["/bin/app"]
CMD ["--help"]

Author

Nao Yonashiro (@orisano)

License

MIT