fix: pass git commit hash to Docker build via build-arg

This commit is contained in:
2026-03-31 11:52:25 -07:00
parent d00dc0f096
commit fb5c4eb5d4
2 changed files with 6 additions and 7 deletions
+3 -5
View File
@@ -4,7 +4,7 @@
FROM node:20-alpine AS builder FROM node:20-alpine AS builder
# Install dependencies # Install dependencies
RUN apk add --no-cache python3 make g++ git RUN apk add --no-cache python3 make g++
# Set working directory # Set working directory
WORKDIR /app WORKDIR /app
@@ -18,15 +18,13 @@ RUN npm ci
# Copy source code # Copy source code
COPY . . COPY . .
# Get git commit hash
RUN GIT_COMMIT_HASH=$(git rev-parse --short HEAD) && echo "GIT_COMMIT_HASH=$GIT_COMMIT_HASH" > .env
# Generate Prisma client (with dummy PostgreSQL DATABASE_URL for build-time generation) # Generate Prisma client (with dummy PostgreSQL DATABASE_URL for build-time generation)
# Note: A dummy URL is used since the real database is not available during build # Note: A dummy URL is used since the real database is not available during build
RUN DATABASE_URL="postgresql://user:pass@localhost:5432/dummy" npx prisma generate RUN DATABASE_URL="postgresql://user:pass@localhost:5432/dummy" npx prisma generate
# Build the application (with dummy DATABASE_URL for static page generation and git commit) # Build the application (with dummy DATABASE_URL for static page generation and git commit)
RUN DATABASE_URL="postgresql://user:pass@localhost:5432/dummy" NEXT_PUBLIC_GIT_COMMIT=$(git rev-parse --short HEAD) npm run build ARG GIT_COMMIT=unknown
RUN DATABASE_URL="postgresql://user:pass@localhost:5432/dummy" NEXT_PUBLIC_GIT_COMMIT=$GIT_COMMIT npm run build
# Stage 2: Runner # Stage 2: Runner
FROM node:20-alpine AS runner FROM node:20-alpine AS runner
+3 -2
View File
@@ -85,11 +85,11 @@ seed:
# Build the Docker image (standard build) # Build the Docker image (standard build)
docker-build: docker-build:
@echo "Building Docker image {{PROJECT}}:{{IMAGE_TAG}}..." @echo "Building Docker image {{PROJECT}}:{{IMAGE_TAG}}..."
docker build -t {{PROJECT}}:{{IMAGE_TAG}} . docker build --build-arg GIT_COMMIT={{GIT_COMMIT}} -t {{PROJECT}}:{{IMAGE_TAG}} .
docker-build-commit: docker-build-commit:
@echo "Building Docker image {{PROJECT}}:{{IMAGE_TAG_COMMIT}}..." @echo "Building Docker image {{PROJECT}}:{{IMAGE_TAG_COMMIT}}..."
docker build -t {{PROJECT}}:{{IMAGE_TAG_COMMIT}} . docker build --build-arg GIT_COMMIT={{GIT_COMMIT}} -t {{PROJECT}}:{{IMAGE_TAG_COMMIT}} .
# Build and tag with both latest and commit hash # Build and tag with both latest and commit hash
docker-build-full: docker-build docker-build-commit docker-build-full: docker-build docker-build-commit
@@ -99,6 +99,7 @@ docker-build-full: docker-build docker-build-commit
docker-rebuild-fast: docker-rebuild-fast:
@echo "Fast rebuilding Docker image {{PROJECT}}:{{IMAGE_TAG}}..." @echo "Fast rebuilding Docker image {{PROJECT}}:{{IMAGE_TAG}}..."
DOCKER_BUILDKIT=1 docker build \ DOCKER_BUILDKIT=1 docker build \
--build-arg GIT_COMMIT={{GIT_COMMIT}} \
--cache-from={{PROJECT}}:{{IMAGE_TAG}} \ --cache-from={{PROJECT}}:{{IMAGE_TAG}} \
-t {{PROJECT}}:{{IMAGE_TAG}} \ -t {{PROJECT}}:{{IMAGE_TAG}} \
-t {{PROJECT}}:{{IMAGE_TAG_COMMIT}} \ -t {{PROJECT}}:{{IMAGE_TAG_COMMIT}} \