36 lines
947 B
Bash
36 lines
947 B
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
IMAGE_NAME=${IMAGE_NAME:-mengyadriftbottle}
|
|
CONTAINER_NAME=${CONTAINER_NAME:-mengyadriftbottle}
|
|
FRONTEND_PORT=${FRONTEND_PORT:-6767}
|
|
BACKEND_PORT=${BACKEND_PORT:-5002}
|
|
PROJECT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
DATA_DIR="${DATA_DIR:-}"
|
|
|
|
echo "[1/3] Building image $IMAGE_NAME ..."
|
|
docker build -t "$IMAGE_NAME" "$PROJECT_DIR"
|
|
|
|
echo "[2/3] Removing old container if it exists ..."
|
|
if docker ps -a --format '{{.Names}}' | grep -Eq "^${CONTAINER_NAME}$"; then
|
|
docker rm -f "$CONTAINER_NAME" >/dev/null
|
|
fi
|
|
|
|
echo "[3/3] Starting container $CONTAINER_NAME ..."
|
|
RUN_ARGS=(
|
|
-d
|
|
--name "$CONTAINER_NAME"
|
|
-p ${FRONTEND_PORT}:6767
|
|
-e BACKEND_PORT=5002
|
|
)
|
|
|
|
if [ -n "$DATA_DIR" ]; then
|
|
mkdir -p "$DATA_DIR"
|
|
RUN_ARGS+=( -v "$DATA_DIR:/app/data" )
|
|
fi
|
|
|
|
docker run "${RUN_ARGS[@]}" "$IMAGE_NAME"
|
|
|
|
echo "Container is up. Frontend: http://localhost:${FRONTEND_PORT}"
|
|
echo "Logs: docker logs -f ${CONTAINER_NAME}"
|