make: add target "docker-release"

"make docker-release tag=..." produces the same binaries regardless on
the platform and the installed Go version, because it uses Docker.
This commit is contained in:
Boris Nagaev 2025-09-26 00:45:57 -03:00
parent c9e2467ac2
commit f70678f863
No known key found for this signature in database
2 changed files with 44 additions and 2 deletions

23
release.Dockerfile Normal file
View file

@ -0,0 +1,23 @@
FROM golang:1.24.6
RUN apt-get update && apt-get install -y --no-install-recommends \
git ca-certificates zip gpg && rm -rf /var/lib/apt/lists/*
# Add GPG key of Alex Bosworth to verify release tag signature.
RUN gpg --keyserver keys.openpgp.org \
--recv-keys DE23E73BFA8A0AD5587D2FCDE80D2F3F311FD87E
# Mark the repo directory safe for git. User ID may be different inside
# Docker and Git might refuse to work without this setting.
RUN git config --global --add safe.directory /repo
RUN git config --global --add safe.directory /repo/.git
# Set GO build time environment variables.
ENV GOCACHE=/tmp/build/.cache \
GOMODCACHE=/tmp/build/.modcache
# Create directories to which host's Go caches are mounted.
RUN mkdir -p /tmp/build/.cache /tmp/build/.modcache \
&& chmod -R 777 /tmp/build/
WORKDIR /repo