0a3558fc51
- Add Dockerfile for frontend and server services - Add Docker Compose configs (standard and offline mode) - Add nginx.conf for admin-web service - Add deploy scripts: package.sh (packaging) and load-and-start.sh (startup) - Add deploy/config.yaml, .env.example, and prompts.yml configurations - Add image management design specification doc
57 lines
2.3 KiB
Bash
Executable File
57 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# load-and-start.sh — 在【离线目标服务器】上运行
|
|
# 加载镜像并启动所有服务
|
|
#
|
|
# 用法(解压部署包后):
|
|
# bash deploy.sh
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
# 读取打包时记录的元数据
|
|
if [[ -f "${SCRIPT_DIR}/.package-meta" ]]; then
|
|
source "${SCRIPT_DIR}/.package-meta"
|
|
fi
|
|
IMAGE_TAG="${IMAGE_TAG:-latest}"
|
|
LOCAL_PREFIX="${LOCAL_PREFIX:-geo-rankly}"
|
|
|
|
# ─── 检查 .env ────────────────────────────────────────────────────────────────
|
|
if [[ ! -f "${SCRIPT_DIR}/.env" ]]; then
|
|
echo "❌ 未找到 .env 文件,请先执行:"
|
|
echo " cp .env.example .env && vi .env"
|
|
exit 1
|
|
fi
|
|
|
|
# ─── Step 1: 加载镜像 ─────────────────────────────────────────────────────────
|
|
echo "==> [1/3] 加载 Docker 镜像(可能需要几分钟)..."
|
|
docker load -i "${SCRIPT_DIR}/images.tar"
|
|
echo " 镜像加载完成"
|
|
docker images | grep -E "geo-rankly|postgres|rabbitmq|redis|qdrant|minio" | head -20
|
|
|
|
# ─── Step 2: 设置 IMAGE_REGISTRY 为本地前缀 ──────────────────────────────────
|
|
echo "==> [2/3] 配置离线镜像引用..."
|
|
export IMAGE_REGISTRY="${LOCAL_PREFIX}"
|
|
export IMAGE_TAG="${IMAGE_TAG}"
|
|
|
|
# ─── Step 3: 启动服务 ─────────────────────────────────────────────────────────
|
|
echo "==> [3/3] 启动所有服务..."
|
|
cd "${SCRIPT_DIR}"
|
|
docker compose \
|
|
-f docker-compose.yaml \
|
|
-f docker-compose.offline.yaml \
|
|
--env-file .env \
|
|
up -d
|
|
|
|
echo ""
|
|
echo "✅ 部署完成!"
|
|
echo ""
|
|
echo "服务状态:"
|
|
docker compose -f docker-compose.yaml -f docker-compose.offline.yaml ps
|
|
echo ""
|
|
echo "查看日志: docker compose -f docker-compose.yaml logs -f tenant-api"
|
|
echo "停止服务: docker compose -f docker-compose.yaml down"
|
|
echo "管理界面:"
|
|
echo " RabbitMQ: http://<server-ip>:15672 (geo / geo_dev)"
|
|
echo " MinIO: http://<server-ip>:9001 (minioadmin / minioadmin)"
|