Merge branch 'build-metadata-stamping'
This commit is contained in:
commit
f7a583813b
2 changed files with 38 additions and 1 deletions
|
|
@ -1,7 +1,22 @@
|
||||||
FROM docker.io/library/golang:1.25 AS build
|
FROM docker.io/library/golang:1.25 AS build
|
||||||
|
# Build metadata for telesrv's startup log (git_commit/git_branch/... in
|
||||||
|
# cmd/telesrv/buildinfo.go). .containerignore excludes .git, so go build's
|
||||||
|
# automatic VCS stamping sees no repo; pass these in explicitly, e.g.:
|
||||||
|
# podman build \
|
||||||
|
# --build-arg GIT_COMMIT="$(git rev-parse HEAD)" \
|
||||||
|
# --build-arg GIT_BRANCH="$(git rev-parse --abbrev-ref HEAD)" \
|
||||||
|
# --build-arg GIT_TREE_STATE="$(git diff --quiet && echo clean || echo dirty)" \
|
||||||
|
# --build-arg BUILD_TIME="$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
|
||||||
|
# -t owpengram-server -f Containerfile .
|
||||||
|
ARG GIT_COMMIT=unknown
|
||||||
|
ARG GIT_BRANCH=unknown
|
||||||
|
ARG GIT_TREE_STATE=unknown
|
||||||
|
ARG BUILD_TIME=unknown
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
COPY . .
|
COPY . .
|
||||||
RUN CGO_ENABLED=0 go build -trimpath -o /out/gramsrv ./cmd/telesrv
|
RUN CGO_ENABLED=0 go build -trimpath \
|
||||||
|
-ldflags "-X main.gitCommit=${GIT_COMMIT} -X main.gitBranch=${GIT_BRANCH} -X main.gitTreeState=${GIT_TREE_STATE} -X main.buildTime=${BUILD_TIME}" \
|
||||||
|
-o /out/gramsrv ./cmd/telesrv
|
||||||
RUN CGO_ENABLED=0 go build -trimpath -o /out/telesrv-admin ./cmd/telesrv-admin
|
RUN CGO_ENABLED=0 go build -trimpath -o /out/telesrv-admin ./cmd/telesrv-admin
|
||||||
|
|
||||||
FROM docker.io/library/alpine:3.20
|
FROM docker.io/library/alpine:3.20
|
||||||
|
|
|
||||||
22
build.sh
Executable file
22
build.sh
Executable file
|
|
@ -0,0 +1,22 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build the owpengram-server container image, stamping the current git state
|
||||||
|
# into the binary (shows up in telesrv's startup log as git_commit/git_branch/
|
||||||
|
# git_tree_state/build_time). .containerignore excludes .git, so go build's
|
||||||
|
# automatic VCS stamping can't see the repo - the values are passed in here.
|
||||||
|
#
|
||||||
|
# Usage: ./build.sh [extra podman build args...]
|
||||||
|
# IMAGE=my/tag ./build.sh # override the image tag (default: owpengram-server)
|
||||||
|
set -euo pipefail
|
||||||
|
cd "$(dirname "$0")"
|
||||||
|
|
||||||
|
IMAGE="${IMAGE:-owpengram-server}"
|
||||||
|
|
||||||
|
podman build \
|
||||||
|
--build-arg GIT_COMMIT="$(git rev-parse HEAD)" \
|
||||||
|
--build-arg GIT_BRANCH="$(git rev-parse --abbrev-ref HEAD)" \
|
||||||
|
--build-arg GIT_TREE_STATE="$(git diff --quiet && echo clean || echo dirty)" \
|
||||||
|
--build-arg BUILD_TIME="$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
|
||||||
|
-t "$IMAGE" \
|
||||||
|
-f Containerfile \
|
||||||
|
"$@" \
|
||||||
|
.
|
||||||
Loading…
Add table
Add a link
Reference in a new issue