diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..c520c64 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,10 @@ +Dockerfile +.dockerignore +.git +.gitignore +watchtower +vendor +.glide +dist +.idea +.DS_Store diff --git a/Dockerfile b/Dockerfile index 75f70f2..c2d4b9f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,18 +1,34 @@ -FROM alpine:3.9 as alpine +# +# Builder +# + +FROM golang:alpine as builder RUN apk add --no-cache \ + alpine-sdk \ ca-certificates \ + git \ tzdata +WORKDIR /usr/local/src +COPY . . + +RUN \ + GO111MODULE=on CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-extldflags "-static"' . && \ + GO111MODULE=on go test ./... -v + + +# +# watchtower +# + FROM scratch + LABEL "com.centurylinklabs.watchtower"="true" -COPY --from=alpine \ - /etc/ssl/certs/ca-certificates.crt \ - /etc/ssl/certs/ca-certificates.crt -COPY --from=alpine \ - /usr/share/zoneinfo \ - /usr/share/zoneinfo +# copy files from other container +COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt +COPY --from=builder /usr/share/zoneinfo /usr/share/zoneinfo +COPY --from=builder /usr/local/src/watchtower /watchtower -COPY watchtower / -ENTRYPOINT ["/watchtower"] \ No newline at end of file +ENTRYPOINT ["/watchtower"] diff --git a/Dockerfile.self-contained b/Dockerfile.self-contained deleted file mode 100644 index 64d5dc0..0000000 --- a/Dockerfile.self-contained +++ /dev/null @@ -1,38 +0,0 @@ -# -# Builder -# - -FROM golang:alpine as builder - -# use version (for example "v0.3.3") or "master" -ARG WATCHTOWER_VERSION=master - -RUN apk add --no-cache \ - alpine-sdk \ - ca-certificates \ - git \ - tzdata - -RUN git clone --branch "${WATCHTOWER_VERSION}" https://github.com/containrrr/watchtower.git - -RUN \ - cd watchtower && \ - \ - GO111MODULE=on CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-extldflags "-static"' . && \ - GO111MODULE=on go test ./... -v - - -# -# watchtower -# - -FROM scratch - -LABEL "com.centurylinklabs.watchtower"="true" - -# copy files from other container -COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt -COPY --from=builder /usr/share/zoneinfo /usr/share/zoneinfo -COPY --from=builder /go/watchtower/watchtower /watchtower - -ENTRYPOINT ["/watchtower"]