# # Builder # FROM golang:alpine as builder # use version (for example "v0.3.3") or "main" ARG WATCHTOWER_VERSION=main 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' -X github.com/containrrr/watchtower/internal/meta.Version=$(git describe --tags)" . && \ GO111MODULE=on go test ./... -v # # watchtower # FROM scratch LABEL "com.centurylinklabs.watchtower"="true" LABEL "org.opencontainers.image.url"="https://containrrr.dev/watchtower/" \ "org.opencontainers.image.documentation"="https://containrrr.dev/watchtower/" \ "org.opencontainers.image.source"="https://github.com/containrrr/watchtower" \ "org.opencontainers.image.licenses"="Apache-2.0" \ "org.opencontainers.image.title"="watchtower" \ "org.opencontainers.image.title"="A process for automating Docker container base image updates." \ "org.opencontainers.image.base.name"="alpine" # 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 HEALTHCHECK CMD [ "/watchtower", "--health-check"] ENTRYPOINT ["/watchtower"]