use multi-stage build for Docker images, decreasing the size by >80%

This commit is contained in:
Jan Grewe 2018-11-25 17:51:57 +01:00
parent d5a03feb43
commit b70e868a2d
2 changed files with 11 additions and 8 deletions

View File

@ -2,7 +2,7 @@
# Start from a Debian image with the latest version of Go installed # Start from a Debian image with the latest version of Go installed
# and a workspace (GOPATH) configured at /go. # and a workspace (GOPATH) configured at /go.
FROM golang:1.10 FROM golang:1.10 AS build
# Copy the local package files to the container's workspace. # Copy the local package files to the container's workspace.
ADD ./Gopkg.toml /go/src/github.com/boramalper/magnetico/ ADD ./Gopkg.toml /go/src/github.com/boramalper/magnetico/
@ -20,9 +20,9 @@ RUN make test-persistence
RUN make test-magneticod RUN make test-magneticod
RUN make magneticod RUN make magneticod
# Run the outyet command by default when the container starts. FROM alpine:latest
ENTRYPOINT ["/go/bin/magneticod"] WORKDIR /
CMD [] COPY --from=build /go/bin/magneticod /magneticod
# Document that the service listens on port 8080. # Run the outyet command by default when the container starts.
EXPOSE 8080 ENTRYPOINT ["/magneticod"]

View File

@ -20,9 +20,12 @@ RUN make test-persistence
RUN make test-magneticow RUN make test-magneticow
RUN make magneticow RUN make magneticow
FROM alpine:latest
WORKDIR /
COPY --from=build /go/bin/magneticow /magneticow
# Run the outyet command by default when the container starts. # Run the outyet command by default when the container starts.
ENTRYPOINT ["/go/bin/magneticow"] ENTRYPOINT ["/magneticow"]
CMD []
# Document that the service listens on port 8080. # Document that the service listens on port 8080.
EXPOSE 8080 EXPOSE 8080