55 lines
1.1 KiB
Bash
Executable File
55 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SERVICE_NAME="${1:-}"
|
|
|
|
if [ -z "$SERVICE_NAME" ]; then
|
|
echo "Usage: ./deploy-core-service.sh <service-name>"
|
|
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"
|