Browse Source

added label org.opencontainers.image.revision

Fabian Peter Hammerle 3 years ago
parent
commit
46ca6d70fb
3 changed files with 12 additions and 5 deletions
  1. 1 0
      CHANGELOG.md
  2. 3 1
      Dockerfile
  3. 8 4
      Makefile

+ 1 - 0
CHANGELOG.md

@@ -7,6 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 ## [Unreleased]
 ### Added
 - image labels:
+  - `org.opencontainers.image.revision` (git commit hash via build arg)
   - `org.opencontainers.image.source` (repo url)
   - `org.opencontainers.image.title`
 

+ 3 - 1
Dockerfile

@@ -33,5 +33,7 @@ HEALTHCHECK CMD \
         | grep -q network-liveness=up || exit 1
 
 # https://github.com/opencontainers/image-spec/blob/v1.0.1/annotations.md
+ARG REVISION=
 LABEL org.opencontainers.image.title="tor onion service" \
-    org.opencontainers.image.source="https://github.com/fphammerle/docker-onion-service"
+    org.opencontainers.image.source="https://github.com/fphammerle/docker-onion-service" \
+    org.opencontainers.image.revision="$REVISION"

+ 8 - 4
Makefile

@@ -8,18 +8,22 @@ DOCKER_TAG_ARCH_SUFFIX_armv7l := armv7
 DOCKER_TAG_ARCH_SUFFIX_x86_64 := amd64
 DOCKER_TAG_ARCH_SUFFIX = ${DOCKER_TAG_ARCH_SUFFIX_${ARCH}}
 DOCKER_TAG = ${DOCKER_TAG_VERSION}-tor${TOR_PACKAGE_VERSION}-${DOCKER_TAG_ARCH_SUFFIX}
+BUILD_PARAMS = --tag="${DOCKER_IMAGE_NAME}:${DOCKER_TAG}" \
+	--build-arg=REVISION="$(shell git rev-parse HEAD)"
 
 .PHONY: docker-build podman-build docker-push
 
-docker-build:
+worktree-clean:
 	git diff --exit-code
 	git diff --staged --exit-code
-	sudo docker build --tag="${DOCKER_IMAGE_NAME}:${DOCKER_TAG}" .
 
-podman-build:
+docker-build: worktree-clean
+	sudo docker build ${BUILD_PARAMS} .
+
+podman-build: worktree-clean
 	# --format=oci (default) not fully supported by hub.docker.com
 	# https://github.com/docker/hub-feedback/issues/1871#issuecomment-748924149
-	podman build --format=docker --tag="${DOCKER_IMAGE_NAME}:${DOCKER_TAG}" .
+	podman build --format=docker ${BUILD_PARAMS} .
 
 docker-push: docker-build
 	sudo docker push "${DOCKER_IMAGE_NAME}:${DOCKER_TAG}"