From 7f2ab2e3e9ef10e97d65dec79f5319ee26d44691 Mon Sep 17 00:00:00 2001 From: Caleb Xu Date: Thu, 21 Dec 2023 09:24:59 -0500 Subject: [PATCH 1/2] build(docker): make binary versioning inside container consistent with goreleaser build goreleaser currently strips the leading `v` off of the SemVer tag when passing to ldflags, while the container build does not remove it. Remove the leading `v`, if present, off of the version in container builds so that the version returned by `golangci-lint --version` is consistent regardless of whether the program is running standalone or in a container. --- build/Dockerfile | 4 +++- build/alpine.Dockerfile | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/build/Dockerfile b/build/Dockerfile index 3c86cb6f29fe..2c90155d3106 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -7,7 +7,9 @@ ARG DATE COPY / /golangci WORKDIR /golangci -RUN CGO_ENABLED=0 go build -trimpath -ldflags "-s -w -X main.version=$VERSION -X main.commit=$SHORT_COMMIT -X main.date=$DATE" -o golangci-lint ./cmd/golangci-lint/main.go +RUN PROGRAM_VERSION=$VERSION && \ + PROGRAM_VERSION=${PROGRAM_VERSION#v} && \ + CGO_ENABLED=0 go build -trimpath -ldflags "-s -w -X main.version=$PROGRAM_VERSION -X main.commit=$SHORT_COMMIT -X main.date=$DATE" -o golangci-lint ./cmd/golangci-lint/main.go # stage 2 FROM golang:1.21 diff --git a/build/alpine.Dockerfile b/build/alpine.Dockerfile index 35f2626b9c01..2f0189252c2c 100644 --- a/build/alpine.Dockerfile +++ b/build/alpine.Dockerfile @@ -12,7 +12,9 @@ WORKDIR /golangci # 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 -trimpath -ldflags "-s -w -X main.version=$VERSION -X main.commit=$SHORT_COMMIT -X main.date=$DATE" -o golangci-lint ./cmd/golangci-lint/main.go +RUN PROGRAM_VERSION=$VERSION && \ + PROGRAM_VERSION=${PROGRAM_VERSION#v} && \ + CGO_ENABLED=0 go build -trimpath -ldflags "-s -w -X main.version=$PROGRAM_VERSION -X main.commit=$SHORT_COMMIT -X main.date=$DATE" -o golangci-lint ./cmd/golangci-lint/main.go # stage 2 FROM golang:1.21-alpine From 59b9c6da2cb01f60295e8e0f3b52aada243c37c1 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Fri, 22 Dec 2023 01:01:07 +0100 Subject: [PATCH 2/2] review --- build/Dockerfile | 6 +++--- build/alpine.Dockerfile | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/build/Dockerfile b/build/Dockerfile index 2c90155d3106..2226a849ca61 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -7,9 +7,9 @@ ARG DATE COPY / /golangci WORKDIR /golangci -RUN PROGRAM_VERSION=$VERSION && \ - PROGRAM_VERSION=${PROGRAM_VERSION#v} && \ - CGO_ENABLED=0 go build -trimpath -ldflags "-s -w -X main.version=$PROGRAM_VERSION -X main.commit=$SHORT_COMMIT -X main.date=$DATE" -o golangci-lint ./cmd/golangci-lint/main.go +RUN APP_VERSION=${VERSION#v} \ + CGO_ENABLED=0 \ + go build -trimpath -ldflags "-s -w -X main.version=$APP_VERSION -X main.commit=$SHORT_COMMIT -X main.date=$DATE" -o golangci-lint ./cmd/golangci-lint/main.go # stage 2 FROM golang:1.21 diff --git a/build/alpine.Dockerfile b/build/alpine.Dockerfile index 2f0189252c2c..a607970ed5ad 100644 --- a/build/alpine.Dockerfile +++ b/build/alpine.Dockerfile @@ -12,9 +12,9 @@ WORKDIR /golangci # 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 PROGRAM_VERSION=$VERSION && \ - PROGRAM_VERSION=${PROGRAM_VERSION#v} && \ - CGO_ENABLED=0 go build -trimpath -ldflags "-s -w -X main.version=$PROGRAM_VERSION -X main.commit=$SHORT_COMMIT -X main.date=$DATE" -o golangci-lint ./cmd/golangci-lint/main.go +RUN APP_VERSION=${VERSION#v} \ + CGO_ENABLED=0 \ + go build -trimpath -ldflags "-s -w -X main.version=$APP_VERSION -X main.commit=$SHORT_COMMIT -X main.date=$DATE" -o golangci-lint ./cmd/golangci-lint/main.go # stage 2 FROM golang:1.21-alpine