70 lines
2.2 KiB
Bash
70 lines
2.2 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ENV=${1:-test}
|
|
IMAGE=${2:-marketingsystemdatatool_msdt:latest}
|
|
CMD=${3:-up}
|
|
PLATFORM=${PLATFORM:-}
|
|
if [ -z "$PLATFORM" ]; then
|
|
ARCH=$(uname -m)
|
|
case "$ARCH" in
|
|
x86_64) PLATFORM="linux/amd64" ;;
|
|
aarch64) PLATFORM="linux/arm64" ;;
|
|
*) PLATFORM="linux/amd64" ;;
|
|
esac
|
|
fi
|
|
|
|
ROOT_DIR=$(cd "$(dirname "$0")/.." && pwd)
|
|
|
|
if [ -f "$ROOT_DIR/.env.$ENV" ]; then
|
|
set -a
|
|
. "$ROOT_DIR/.env.$ENV"
|
|
set +a
|
|
fi
|
|
|
|
case "$CMD" in
|
|
up)
|
|
docker rm -f msdt >/dev/null 2>&1 || true
|
|
PLATFORM_FLAG=""
|
|
if [ -n "$PLATFORM" ]; then PLATFORM_FLAG="--platform $PLATFORM"; fi
|
|
IMG_ARCH=""
|
|
if docker image inspect "$IMAGE" >/dev/null 2>&1; then
|
|
IMG_ARCH=$(docker image inspect "$IMAGE" --format '{{.Architecture}}' 2>/dev/null || echo "")
|
|
fi
|
|
if [ -n "$IMG_ARCH" ]; then
|
|
HOST_ARCH=$(uname -m)
|
|
case "$HOST_ARCH" in x86_64) HOST_ARCH="amd64" ;; aarch64) HOST_ARCH="arm64" ;; *) HOST_ARCH="amd64" ;; esac
|
|
if [ "$IMG_ARCH" != "$HOST_ARCH" ]; then
|
|
docker pull --platform "$PLATFORM" "$IMAGE" >/dev/null 2>&1 || true
|
|
PLATFORM_FLAG="--platform $PLATFORM"
|
|
fi
|
|
else
|
|
docker pull --platform "$PLATFORM" "$IMAGE" >/dev/null 2>&1 || true
|
|
fi
|
|
docker run -d --name msdt $PLATFORM_FLAG \
|
|
-p 8077:8077 \
|
|
-e APP_ENV="$ENV" \
|
|
-e MARKETING_DB_HOST="${MARKETING_DB_HOST:-}" \
|
|
-e MARKETING_DB_PORT="${MARKETING_DB_PORT:-}" \
|
|
-e MARKETING_DB_USER="${MARKETING_DB_USER:-}" \
|
|
-e MARKETING_DB_PASSWORD="${MARKETING_DB_PASSWORD:-}" \
|
|
-e MARKETING_DB_NAME="${MARKETING_DB_NAME:-}" \
|
|
-e YMT_DB_HOST="${YMT_DB_HOST:-}" \
|
|
-e YMT_DB_PORT="${YMT_DB_PORT:-}" \
|
|
-e YMT_DB_USER="${YMT_DB_USER:-}" \
|
|
-e YMT_DB_PASSWORD="${YMT_DB_PASSWORD:-}" \
|
|
-e YMT_DB_NAME="${YMT_DB_NAME:-}" \
|
|
-v "$ROOT_DIR/server/storage:/app/storage" \
|
|
"$IMAGE" ;;
|
|
down)
|
|
docker rm -f msdt >/dev/null 2>&1 || true ;;
|
|
restart)
|
|
docker restart msdt ;;
|
|
logs)
|
|
docker logs -f msdt ;;
|
|
*)
|
|
echo "usage: deploy_image.sh <env> <image> [up|down|restart|logs]" >&2
|
|
echo "env overrides: set PLATFORM=linux/amd64 or PLATFORM=linux/arm64 if needed" >&2
|
|
exit 1 ;;
|
|
esac
|