From f58698398ef0aa88f182130693a34a82f0e06e1c Mon Sep 17 00:00:00 2001 From: David Gwilliam Date: Tue, 31 Mar 2026 09:14:26 -0700 Subject: [PATCH] chore: update Docker build commands with git commit tags --- justfile | 44 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 8 deletions(-) diff --git a/justfile b/justfile index dd17768..26d8126 100644 --- a/justfile +++ b/justfile @@ -10,9 +10,18 @@ set positional-arguments PROJECT := "euchre-camp" # Docker registry (CasaOS local registry) -REGISTRY := "dhg.lol:5000" # Update IP to your CasaOS server IP +REGISTRY := "registry" # Update to your registry host if needed IMAGE_TAG := "latest" +# Get git commit hash (short version) +GIT_COMMIT := `git rev-parse --short HEAD` + +# Image tag with git commit +IMAGE_TAG_COMMIT := "{{GIT_COMMIT}}" + +# Full image name with registry +REGISTRY_IMAGE := "{{REGISTRY}}/{{PROJECT}}" + # --- Variables --- # Database DB_CONTAINER := "euchre-camp-postgres" @@ -76,11 +85,28 @@ seed: # --- Docker --- -# Build the Docker image +# Build the Docker image (standard build) docker-build: @echo "Building Docker image {{PROJECT}}:{{IMAGE_TAG}}..." docker build -t {{PROJECT}}:{{IMAGE_TAG}} . +# Build the Docker image with git commit tag +docker-build-commit: + @echo "Building Docker image {{PROJECT}}:{{IMAGE_TAG_COMMIT}}..." + docker build -t {{PROJECT}}:{{IMAGE_TAG_COMMIT}} . + +# Build and tag with both latest and commit hash +docker-build-full: docker-build docker-build-commit + +# Fast rebuild using Docker BuildKit cache +# Uses build cache to speed up rebuilds when only code changes +docker-rebuild-fast: + @echo "Fast rebuilding Docker image {{PROJECT}}:{{IMAGE_TAG}}..." + DOCKER_BUILDKIT=1 docker build \ + --cache-from={{PROJECT}}:{{IMAGE_TAG}} \ + -t {{PROJECT}}:{{IMAGE_TAG}} \ + . + # Run the Docker container locally docker-run: docker-build @echo "Running Docker container {{PROJECT}}..." @@ -99,15 +125,17 @@ docker-clean: docker-stop # --- Deployment --- -# Tag image for local registry +# Tag image for registry docker-tag: - @echo "Tagging image for registry {{REGISTRY}}..." - docker tag {{PROJECT}}:{{IMAGE_TAG}} {{REGISTRY}}/{{PROJECT}}:{{IMAGE_TAG}} + @echo "Tagging image for registry..." + docker tag {{PROJECT}}:{{IMAGE_TAG}} {{REGISTRY_IMAGE}}:{{IMAGE_TAG}} + docker tag {{PROJECT}}:{{IMAGE_TAG_COMMIT}} {{REGISTRY_IMAGE}}:{{IMAGE_TAG_COMMIT}} -# Push image to local registry (CasaOS) -docker-push: docker-build docker-tag +# Push image to registry +docker-push: docker-build-full docker-tag @echo "Pushing image to {{REGISTRY}}..." - docker push {{REGISTRY}}/{{PROJECT}}:{{IMAGE_TAG}} + docker push {{REGISTRY_IMAGE}}:{{IMAGE_TAG}} + docker push {{REGISTRY_IMAGE}}:{{IMAGE_TAG_COMMIT}} # --- CI/CD Pipeline Simulation ---