47 lines
1.8 KiB
Bash
Executable File
47 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
set -euo pipefail
|
||
|
||
# 使用远端 infra 基础组件启动本地 muse-server。
|
||
# 默认读取 ~/.config/muse-repo/infra.env;也可以通过 MUSE_INFRA_ENV 指定其它文件。
|
||
|
||
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
||
REPO_DIR="$(cd -- "${SCRIPT_DIR}/../.." >/dev/null 2>&1 && pwd)"
|
||
ENV_FILE="${MUSE_INFRA_ENV:-${HOME}/.config/muse-repo/infra.env}"
|
||
|
||
if [[ -f "${ENV_FILE}" ]]; then
|
||
set -a
|
||
# shellcheck disable=SC1090
|
||
source "${ENV_FILE}"
|
||
set +a
|
||
fi
|
||
|
||
require_env() {
|
||
local name="$1"
|
||
if [[ -z "${!name:-}" ]]; then
|
||
echo "缺少环境变量 ${name}。请先复制 scripts/dev/infra.env.example 到 ${ENV_FILE} 并填入真实值。" >&2
|
||
exit 1
|
||
fi
|
||
}
|
||
|
||
require_env MUSE_POSTGRES_PASSWORD
|
||
require_env MUSE_REDIS_PASSWORD
|
||
|
||
export MUSE_POSTGRES_HOST="${MUSE_POSTGRES_HOST:-100.64.0.8}"
|
||
export MUSE_POSTGRES_PORT="${MUSE_POSTGRES_PORT:-5433}"
|
||
export MUSE_POSTGRES_DATABASE="${MUSE_POSTGRES_DATABASE:-muse_local}"
|
||
export MUSE_POSTGRES_USERNAME="${MUSE_POSTGRES_USERNAME:-muse_dev}"
|
||
export MUSE_REDIS_HOST="${MUSE_REDIS_HOST:-100.64.0.8}"
|
||
export MUSE_REDIS_PORT="${MUSE_REDIS_PORT:-6379}"
|
||
|
||
cd "${REPO_DIR}"
|
||
|
||
echo "启动 muse-server,profile=local,infra,数据库=${MUSE_POSTGRES_HOST}:${MUSE_POSTGRES_PORT}/${MUSE_POSTGRES_DATABASE},Redis=${MUSE_REDIS_HOST}:${MUSE_REDIS_PORT}"
|
||
|
||
echo "编译 muse-server 及其依赖模块..."
|
||
# Maven 在本机并发下载大量依赖时偶发 TLS 握手中断;单线程下载更稳。
|
||
# 本地启动只需要可运行 jar,不需要编译和执行测试代码;clean 可避免复用旧的 fat jar 依赖产物。
|
||
mvn -U -Dmaven.artifact.threads=1 -pl muse-server -am -Dmaven.test.skip=true clean package
|
||
|
||
echo "运行 muse-server/target/muse-server.jar"
|
||
exec java -jar muse-server/target/muse-server.jar --spring.profiles.active=local,infra
|