Fix: Use short git commit ID (7 chars) instead of full hash

Research findings:
- Industry standard uses 'git rev-parse --short HEAD' (7 characters)
- Short hashes are more readable for logs and health endpoints
- Git automatically extends hash if 7 chars aren't unique
- Better for production deployment tracking and version verification

Changes:
- Dockerfile: Use --short flag to get 7-character commit ID
- README: Update examples to show short commit format (0e993d9)
- README: Add explanation of why short commits are used

Example health response:
{
  "git_commit": "0e993d9",  // 7 chars, not full 40-char SHA
  "version": "1.0.0"
}

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
ryan.gogo
2026-02-15 11:00:45 +01:00
parent 0e993d912a
commit 25b9d20094
2 changed files with 7 additions and 7 deletions

View File

@@ -16,9 +16,9 @@ RUN npm install --production
# Copy app code (changes more often — below the cached layer) # Copy app code (changes more often — below the cached layer)
COPY . . COPY . .
# Try to get git commit if not provided and .git exists # Try to get short git commit (7 chars) if not provided and .git exists
RUN if [ "$GIT_COMMIT" = "unknown" ] && [ -d .git ]; then \ RUN if [ "$GIT_COMMIT" = "unknown" ] && [ -d .git ]; then \
GIT_COMMIT=$(git rev-parse HEAD 2>/dev/null || echo "unknown"); \ GIT_COMMIT=$(git rev-parse --short HEAD 2>/dev/null || echo "unknown"); \
fi && \ fi && \
echo "export GIT_COMMIT=${GIT_COMMIT}" >> /etc/profile.d/git-version.sh echo "export GIT_COMMIT=${GIT_COMMIT}" >> /etc/profile.d/git-version.sh

View File

@@ -284,7 +284,7 @@ curl https://template-001.startanaicompany.com/health
# "postgres": "connected", # "postgres": "connected",
# "redis": "connected", # "redis": "connected",
# "timestamp": "2026-02-14T10:30:00.000Z", # "timestamp": "2026-02-14T10:30:00.000Z",
# "git_commit": "eb6b6e0...", # "git_commit": "0e993d9",
# "version": "1.0.0" # "version": "1.0.0"
# } # }
@@ -416,7 +416,7 @@ Health check endpoint that verifies connections to PostgreSQL and Redis, and ret
"postgres": "connected", "postgres": "connected",
"redis": "connected", "redis": "connected",
"timestamp": "2026-02-14T10:30:00.000Z", "timestamp": "2026-02-14T10:30:00.000Z",
"git_commit": "eb6b6e0a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q", "git_commit": "0e993d9",
"version": "1.0.0" "version": "1.0.0"
} }
``` ```
@@ -426,16 +426,16 @@ Health check endpoint that verifies connections to PostgreSQL and Redis, and ret
{ {
"status": "unhealthy", "status": "unhealthy",
"error": "Connection error message", "error": "Connection error message",
"git_commit": "eb6b6e0a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q", "git_commit": "0e993d9",
"version": "1.0.0" "version": "1.0.0"
} }
``` ```
**Version Tracking:** **Version Tracking:**
- `git_commit`: The Git commit SHA of the deployed code (auto-detected during build) - `git_commit`: Short Git commit SHA (7 characters) of the deployed code, auto-detected during build using `git rev-parse --short HEAD`
- `version`: Application version (defaults to 1.0.0, can be set via APP_VERSION env var) - `version`: Application version (defaults to 1.0.0, can be set via APP_VERSION env var)
This allows AI agents and monitoring tools to verify which version is currently running. This allows AI agents and monitoring tools to verify which version is currently running. The short commit ID is industry standard for deployment tracking, providing a balance between uniqueness and readability.
--- ---