targd is multistage build helper
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.dockerignore
Dockerfile
Gopkg.lock
Gopkg.toml
LICENSE
README.md
main.go

README.md

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