chore: 增加 Docker 单容器部署
生产用 Dockerfile + compose 嵌入前端二进制,run.sh docker 一键构建启动。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
95405de119
commit
cb1a9be2c4
7 files changed
+224
-4
No files matched your search
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
# opsx-licence 启动脚本
|
||||
# 一键启动前后端服务,支持日志轮转与单二进制部署
|
||||
# 用法: ./run.sh [start|stop|restart|status|frontend|backend|build|binary|help]
|
||||
# 用法: ./run.sh [start|stop|restart|status|frontend|backend|build|binary|docker|help]
|
||||
|
||||
set -e
|
||||
|
||||
@@ -282,6 +282,62 @@ binary_command() {
|
||||
esac
|
||||
}
|
||||
|
||||
# ============================================================
|
||||
# Docker 部署(生产推荐)
|
||||
# ============================================================
|
||||
compose_cmd() {
|
||||
if docker compose version >/dev/null 2>&1; then
|
||||
echo "docker compose"
|
||||
elif command -v docker-compose >/dev/null 2>&1; then
|
||||
echo "docker-compose"
|
||||
else
|
||||
error "未找到 docker compose / docker-compose"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
docker_command() {
|
||||
local sub=${1:-up}
|
||||
local dc
|
||||
dc=$(compose_cmd) || return 1
|
||||
|
||||
if [ ! -f "$SCRIPT_DIR/.env" ]; then
|
||||
warning "缺少 .env,正在从 .env.example 复制"
|
||||
cp "$SCRIPT_DIR/.env.example" "$SCRIPT_DIR/.env"
|
||||
warning "请编辑 .env 修改 JWT_SECRET / Waffo 配置后再部署"
|
||||
fi
|
||||
|
||||
case "$sub" in
|
||||
up|start)
|
||||
info "Docker 构建并启动..."
|
||||
$dc -f "$SCRIPT_DIR/docker-compose.yml" up -d --build
|
||||
success "容器已启动: http://localhost:${HOST_PORT:-9001}"
|
||||
;;
|
||||
down|stop)
|
||||
info "停止 Docker 容器..."
|
||||
$dc -f "$SCRIPT_DIR/docker-compose.yml" down
|
||||
;;
|
||||
restart)
|
||||
$dc -f "$SCRIPT_DIR/docker-compose.yml" restart
|
||||
;;
|
||||
rebuild|upgrade)
|
||||
info "重新构建并滚动升级..."
|
||||
$dc -f "$SCRIPT_DIR/docker-compose.yml" up -d --build --force-recreate
|
||||
;;
|
||||
logs)
|
||||
$dc -f "$SCRIPT_DIR/docker-compose.yml" logs -f --tail=200
|
||||
;;
|
||||
status|ps)
|
||||
$dc -f "$SCRIPT_DIR/docker-compose.yml" ps
|
||||
;;
|
||||
*)
|
||||
error "未知 docker 命令: $sub"
|
||||
echo "用法: ./run.sh docker [up|down|restart|rebuild|logs|status]"
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# ============================================================
|
||||
# 命令
|
||||
# ============================================================
|
||||
@@ -320,6 +376,7 @@ show_help() {
|
||||
echo " frontend 仅启动前端服务"
|
||||
echo " build 构建嵌入前端的单二进制 $STANDALONE_BIN"
|
||||
echo " binary 管理单二进制服务(start|stop|restart|status|upgrade)"
|
||||
echo " docker Docker 部署(up|down|restart|rebuild|logs|status)"
|
||||
echo " status 查看服务状态"
|
||||
echo " help 显示帮助信息"
|
||||
echo ""
|
||||
@@ -330,6 +387,7 @@ show_help() {
|
||||
echo " ./run.sh backend # 仅启动后端"
|
||||
echo " ./run.sh build # 生成 ./opsx-licence"
|
||||
echo " ./run.sh binary start # 启动单二进制服务"
|
||||
echo " ./run.sh docker up # Docker 构建并启动(生产推荐)"
|
||||
}
|
||||
|
||||
# ============================================================
|
||||
@@ -389,6 +447,9 @@ main() {
|
||||
binary)
|
||||
binary_command "${2:-start}"
|
||||
;;
|
||||
docker)
|
||||
docker_command "${2:-up}"
|
||||
;;
|
||||
status)
|
||||
show_status
|
||||
;;
|
||||
|
||||
Reference in new issue
Block a user