diff --git a/scripts/deploy-core-service.sh b/scripts/deploy-core-service.sh new file mode 100755 index 0000000..7909670 --- /dev/null +++ b/scripts/deploy-core-service.sh @@ -0,0 +1,54 @@ +#!/usr/bin/env bash +set -euo pipefail + +SERVICE_NAME="${1:-}" + +if [ -z "$SERVICE_NAME" ]; then + echo "Usage: ./deploy-core-service.sh " + exit 1 +fi + +CONFIG_FILE="/opt/appfactory/config/appfactory.env" +source "$CONFIG_FILE" + +export DOCKER_CONFIG="/tmp/.docker" +mkdir -p "$DOCKER_CONFIG" + +SERVICE_DIR="$WORKSPACE_DIR/$SERVICE_NAME" +DEPLOY_DIR="$APPFACTORY_DIR/deploy" + +if [ ! -d "$SERVICE_DIR" ]; then + echo "Missing service directory: $SERVICE_DIR" + exit 1 +fi + +if [ ! -f "$SERVICE_DIR/Dockerfile" ]; then + echo "Missing Dockerfile: $SERVICE_DIR/Dockerfile" + exit 1 +fi + +echo "Updating source..." +cd "$SERVICE_DIR" + +git \ + -c safe.directory="$SERVICE_DIR" \ + fetch origin main + +git \ + -c safe.directory="$SERVICE_DIR" \ + reset --hard origin/main + +echo "Building image..." +docker build --pull --no-cache -t "$SERVICE_NAME:latest" "$SERVICE_DIR" + +echo "Recreating container..." +cd "$DEPLOY_DIR" + +docker compose \ + -f docker-compose.yml \ + -f apps-compose.yml \ + up -d --force-recreate "$SERVICE_NAME" + +echo "" +echo "DONE" +echo "Service deployed: $SERVICE_NAME"