diff --git a/.github/workflows/tag.yml b/.github/workflows/tag.yml
index b970de5b..8184e2c9 100644
--- a/.github/workflows/tag.yml
+++ b/.github/workflows/tag.yml
@@ -17,8 +17,7 @@ jobs:
           go-version: 1.15
       - name: Unshallow
         run: git fetch --prune --unshallow
-      - name: Login do docker.io
-        run: docker login -u golangci -p ${{ secrets.GOLANGCI_LINT_DOCKER_TOKEN }}
+
       - name: Create release
         uses: goreleaser/goreleaser-action@v2
         with:
@@ -26,38 +25,59 @@ jobs:
           args: release --rm-dist
         env:
           GITHUB_TOKEN: ${{ secrets.GOLANGCI_LINT_TOKEN }}
+
+  docker-release:
+    needs: [ release ]
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        target:
+          - Dockerfile: build/Dockerfile
+          - Dockerfile: build/Dockerfile.alpine
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Install Go
+        uses: actions/setup-go@v2
+        with:
+          go-version: 1.15
+
+      - name: Unshallow
+        run: git fetch --prune --unshallow
+
       - name: Prepare
         id: prepare
         run: |
             TAG=${GITHUB_REF#refs/tags/}
             MAJOR=${TAG%.*}
+            SHORT_COMMIT=${GITHUB_SHA::8}
+            DATE=$(date '+%Y-%m-%dT%H:%M:%SZ')
             echo ::set-output name=tag_name::${TAG}
             echo ::set-output name=major_tag::${MAJOR}
+            echo ::set-output name=short_commit::${SHORT_COMMIT}
+            echo ::set-output name=date::${DATE}
+
       - name: Set up QEMU
         uses: docker/setup-qemu-action@v1
+
       - name: Set up Docker Buildx
         uses: docker/setup-buildx-action@v1
-      - name: build and publish main image
-        id: docker_build
+
+      - name: Login do docker.io
+        run: docker login -u golangci -p ${{ secrets.GOLANGCI_LINT_DOCKER_TOKEN }}
+
+      - name: Build and publish ${{ matrix.target.Dockerfile }}
         uses: docker/build-push-action@v2
         with:
           context: .
-          file: build/Dockerfile
+          file: ${{ matrix.target.Dockerfile }}
           platforms: linux/amd64,linux/arm64
           push: true
+          build-args: |
+            VERSION=${{ steps.prepare.outputs.tag_name }}
+            SHORT_COMMIT=${{ steps.prepare.outputs.short_commit }}
+            DATE=${{ steps.prepare.outputs.date }}
           tags: |
             golangci/golangci-lint:${{ steps.prepare.outputs.tag_name }}
             golangci/golangci-lint:${{ steps.prepare.outputs.major_tag }}
             golangci/golangci-lint:latest
-      - name: build and publish alpine image
-        id: docker_build_alpine
-        uses: docker/build-push-action@v2
-        with:
-          context: .
-          file: build/Dockerfile.alpine
-          platforms: linux/amd64,linux/arm64
-          push: true
-          tags: |
-            golangci/golangci-lint:${{ steps.prepare.outputs.tag_name }}-alpine
-            golangci/golangci-lint:${{ steps.prepare.outputs.major_tag }}-alpine
-            golangci/golangci-lint:latest-alpine
diff --git a/build/Dockerfile b/build/Dockerfile
index b9dc78c1..a067f26d 100644
--- a/build/Dockerfile
+++ b/build/Dockerfile
@@ -1,9 +1,13 @@
 # stage 1 building the code
 FROM golang:1.15 as builder
 
+ARG VERSION
+ARG SHORT_COMMIT
+ARG DATE
+
 COPY / /golangci
 WORKDIR /golangci
-RUN go build -o golangci-lint ./cmd/golangci-lint/main.go
+RUN CGO_ENABLED=0 go build -ldflags "-s -w -X main.version=$VERSION -X main.commit=$SHORT_COMMIT -X main.date=$DATE" -o golangci-lint ./cmd/golangci-lint/main.go
 
 # stage 2
 FROM golang:1.15
diff --git a/build/Dockerfile.alpine b/build/Dockerfile.alpine
index 065c6596..59274d65 100644
--- a/build/Dockerfile.alpine
+++ b/build/Dockerfile.alpine
@@ -1,9 +1,18 @@
 # stage 1 building the code
 FROM golang:1.15-alpine as builder
 
+ARG VERSION
+ARG SHORT_COMMIT
+ARG DATE
+
 COPY / /golangci
 WORKDIR /golangci
-RUN CGO_ENABLED=0 go build -o golangci-lint ./cmd/golangci-lint/main.go
+
+# gcc is required to support cgo;
+# git and mercurial are needed most times for go get`, etc.
+# See https://github.com/docker-library/golang/issues/80
+RUN apk --no-cache add gcc musl-dev git mercurial
+RUN CGO_ENABLED=0 go build -ldflags "-s -w -X main.version=$VERSION -X main.commit=$SHORT_COMMIT -X main.date=$DATE" -o golangci-lint ./cmd/golangci-lint/main.go
 
 # stage 2
 FROM golang:1.15-alpine