chore(deploy): use IMAGE_VERSION env var and read version from package.json

This commit is contained in:
2025-08-11 14:10:29 +02:00
parent 3e3b4e2834
commit e41f322e20
2 changed files with 30 additions and 4 deletions

View File

@@ -1,4 +1,30 @@
#!/bin/bash
docker stack deploy \
-c docker-compose-deploy.yml \
utility-bills-tracker
set -euo pipefail
COMPOSE_FILE="docker-compose-deploy.yml"
PACKAGE_JSON="package.json"
STACK_NAME=${STACK_NAME:-utility-bills-tracker}
if [ ! -f "$PACKAGE_JSON" ]; then
echo "package.json not found" >&2
exit 1
fi
# Extract version (prefer jq if available)
if command -v jq >/dev/null 2>&1; then
APP_VERSION=$(jq -r '.version' "$PACKAGE_JSON")
else
APP_VERSION=$(grep -E '"version"' "$PACKAGE_JSON" | head -1 | sed -E 's/.*"version"[[:space:]]*:[[:space:]]*"([^"]+)".*/\1/')
fi
if [ -z "${APP_VERSION:-}" ] || [ "$APP_VERSION" = "null" ]; then
echo "Could not determine app version from package.json" >&2
exit 2
fi
echo "Deploying $STACK_NAME with image version: $APP_VERSION"
# Pass IMAGE_VERSION env var for compose variable substitution
IMAGE_VERSION="$APP_VERSION" docker stack deploy \
-c "$COMPOSE_FILE" \
"$STACK_NAME"

View File

@@ -13,7 +13,7 @@ networks:
services:
web-app:
image: utility-bills-tracker:1.56.0
image: utility-bills-tracker:${IMAGE_VERSION}
networks:
- traefik-network
- mongo-network