1
This commit is contained in:
11
pull-and-restart.sh
Normal file → Executable file
11
pull-and-restart.sh
Normal file → Executable file
@@ -1,12 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
# 拉取代码并重启:缺什么自动安装(curl、Git、Docker、Docker Compose),再 git 拉取 + docker compose 构建启动
|
||||
# 用法:cd 项目根 && ./pull-and-restart.sh(若 Permission denied 则先执行 bash pull-and-restart.sh 或 chmod +x pull-and-restart.sh restart.sh)
|
||||
# 用法:cd 项目根 && ./pull-and-restart.sh(仓库中已记录可执行权限,拉取后可直接执行)
|
||||
# 行尾:LF
|
||||
set -e
|
||||
ROOT="${PROJECT_ROOT:-$(cd "$(dirname "$0")" && pwd)}"
|
||||
cd "$ROOT"
|
||||
# 拉取后可能无可执行权限,先自修复以便下次可直接 ./ 执行
|
||||
chmod +x "$ROOT/pull-and-restart.sh" "$ROOT/restart.sh" 2>/dev/null || true
|
||||
|
||||
run_sudo() { sudo "$@"; }
|
||||
|
||||
@@ -298,6 +296,13 @@ echo "构建 api 二进制 -> deploy/api/server ..."
|
||||
run_sudo docker run --rm -v "$ROOT/server:/src" -v "$ROOT/deploy/api:/out" -w /src -e GOPROXY="${GOPROXY}" \
|
||||
"${REGISTRY_MIRROR}golang:1.21-alpine" sh -c "go build -mod=vendor -o /out/server ."
|
||||
|
||||
# 确保容器内 nginx 可读(拉取后直接执行时权限一致)
|
||||
run_sudo chmod -R a+rX "$ROOT/deploy/web/dist" "$ROOT/deploy/admin/dist" 2>/dev/null || true
|
||||
if [ ! -f "$ROOT/deploy/web/dist/index.html" ] || [ ! -f "$ROOT/deploy/admin/dist/index.html" ]; then
|
||||
echo "错误: 构建产物不完整(缺少 index.html)。若仅做了 git pull 未执行本脚本,请完整执行: ./pull-and-restart.sh" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 仅构建 api 运行时镜像(轻量,无业务代码);web/admin 使用官方 nginx 镜像无需构建
|
||||
compose_cmd build api
|
||||
|
||||
|
||||
Reference in New Issue
Block a user