#!/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"