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
# 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.
ADD ./Gopkg.toml /go/src/github.com/boramalper/magnetico/
@ -20,9 +20,9 @@ RUN make test-persistence
RUN make test-magneticod
RUN make magneticod
# Run the outyet command by default when the container starts.
ENTRYPOINT ["/go/bin/magneticod"]
CMD []
FROM alpine:latest
WORKDIR /
COPY --from=build /go/bin/magneticod /magneticod
# Document that the service listens on port 8080.
EXPOSE 8080
# Run the outyet command by default when the container starts.
ENTRYPOINT ["/magneticod"]

View File

@ -20,9 +20,12 @@ RUN make test-persistence
RUN make test-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.
ENTRYPOINT ["/go/bin/magneticow"]
CMD []
ENTRYPOINT ["/magneticow"]
# Document that the service listens on port 8080.
EXPOSE 8080