diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..02787e9 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,2 @@ +Dockerfile +.travis.yml diff --git a/Dockerfile b/Dockerfile index cd8c5a6..e813061 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,12 +1,25 @@ -FROM alpine:latest -MAINTAINER MessageBird +# ##### builder stage ##### +FROM alpine:latest AS builder +LABEL maintainer="support@messagebird.com" + +ENV GOPATH=/usr/local + +RUN apk add --no-cache musl-dev go git && \ + go get -u github.com/golang/dep/cmd/dep + +ADD . /usr/local/src/pushprom +WORKDIR /usr/local/src/pushprom -# Copy over the binary in the container. -ADD bin/pushprom /usr/bin/ +RUN dep ensure -v && \ + go test && \ + GOOS=linux GOARCH=amd64 CGO_ENABLED=1 go build -ldflags "-s -w" -o "/usr/local/bin/pushprom" + +# ##### image stage ##### +FROM alpine:latest +COPY --from=builder /usr/local/bin/pushprom /usr/local/bin/pushprom EXPOSE 9090 9091 # Run -CMD ["/usr/bin/pushprom"] - +CMD ["/usr/local/bin/pushprom"]