2026-06-14 13:38:32 +08:00
|
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
set -euo pipefail
|
|
|
|
|
|
|
|
|
|
|
|
PROJECT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
|
|
|
|
cd "$PROJECT_DIR"
|
|
|
|
|
|
|
|
|
|
|
|
# 颜色输出
|
|
|
|
|
|
GREEN='\033[0;32m'
|
|
|
|
|
|
NC='\033[0m'
|
|
|
|
|
|
|
|
|
|
|
|
info() { echo -e "${GREEN}[INFO]${NC} $*"; }
|
|
|
|
|
|
|
|
|
|
|
|
cmd_build() {
|
|
|
|
|
|
info "构建 Docker 镜像..."
|
2026-06-14 15:14:28 +08:00
|
|
|
|
# 启用 BuildKit 加速构建
|
|
|
|
|
|
DOCKER_BUILDKIT=1 docker compose build --parallel
|
2026-06-14 13:38:32 +08:00
|
|
|
|
info "构建完成"
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
cmd_up() {
|
|
|
|
|
|
info "启动服务..."
|
|
|
|
|
|
docker compose up -d
|
|
|
|
|
|
info "服务已启动"
|
2026-06-14 15:29:02 +08:00
|
|
|
|
info "前端: http://8.161.227.145:9000"
|
|
|
|
|
|
info "健康检查: http://8.161.227.145:9000/api/health"
|
2026-06-14 13:38:32 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
cmd_down() {
|
|
|
|
|
|
info "停止服务..."
|
|
|
|
|
|
docker compose down
|
|
|
|
|
|
info "服务已停止"
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
cmd_restart() {
|
|
|
|
|
|
info "重启服务..."
|
|
|
|
|
|
cmd_down
|
|
|
|
|
|
cmd_up
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
cmd_logs() {
|
|
|
|
|
|
docker compose logs -f "${@}"
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
cmd_status() {
|
|
|
|
|
|
docker compose ps
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
usage() {
|
|
|
|
|
|
cat <<EOF
|
|
|
|
|
|
CamTalk 部署脚本
|
|
|
|
|
|
|
|
|
|
|
|
用法: $0 <命令>
|
|
|
|
|
|
|
|
|
|
|
|
命令:
|
|
|
|
|
|
build 构建 Docker 镜像
|
|
|
|
|
|
up 启动服务(后台运行)
|
|
|
|
|
|
down 停止服务
|
|
|
|
|
|
restart 重启服务
|
|
|
|
|
|
logs 查看日志(可加服务名,如: $0 logs backend)
|
|
|
|
|
|
status 查看服务状态
|
|
|
|
|
|
EOF
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
case "${1:-}" in
|
|
|
|
|
|
build) cmd_build ;;
|
|
|
|
|
|
up) cmd_up ;;
|
|
|
|
|
|
down) cmd_down ;;
|
|
|
|
|
|
restart) cmd_restart ;;
|
|
|
|
|
|
logs) shift; cmd_logs "$@" ;;
|
|
|
|
|
|
status) cmd_status ;;
|
|
|
|
|
|
*) usage; exit 1 ;;
|
|
|
|
|
|
esac
|