diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 0000000..0606a2f --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,22 @@ +name: Publish to Registry +on: + push: + branches: + - master + tags: + - v* +jobs: + push: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + - name: Get release version + id: get_version + run: echo ::set-env name=RELEASE_VERSION::$(echo ${GITHUB_REF:10}) + - name: Publish to Registry + uses: elgohr/Publish-Docker-Github-Action@master + with: + name: vadv/prometheus-exporter-merger + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + tags: "latest,${{ env.RELEASE_VERSION }}" diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..a310a17 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +FROM golang:1.14-alpine3.11 as builder + +RUN apk add --no-cache git make gcc libc-dev + +COPY go.mod . +COPY go.sum . +RUN go mod download + +COPY . . +RUN go build --ldflags "-s -w -linkmode external -extldflags -static" --tags netcgo -o /prometheus-exporter-merger + +FROM scratch + +ENTRYPOINT ["/prometheus-exporter-merger"] +USER nobody +EXPOSE 8080 +COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt +COPY --from=builder /etc/passwd /etc/passwd +COPY --from=builder /prometheus-exporter-merger /prometheus-exporter-merger +ENTRYPOINT /prometheus-exporter-merger