#!/usr/bin/env bash # 在本机编译前后端,产出供 Dockerfile.deploy 打包的文件。 # 产物:deploy/server(已 embed 前端 dist)、deploy/entrypoint.sh set -euo pipefail # 解析到服务根目录(脚本位于 scripts/) ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" cd "${ROOT}" echo "==> 1/3 构建前端 (npm run build)" cd frontend [ -d node_modules ] || npm install npm run build cd "${ROOT}" echo "==> 2/3 将 dist 放入 embed 目录 internal/web/dist" rm -rf internal/web/dist mkdir -p internal/web/dist cp -r frontend/dist/. internal/web/dist/ echo "==> 3/3 本机编译 Go(前端嵌入二进制)" mkdir -p deploy CGO_ENABLED=0 GOOS=linux go build -o deploy/server ./cmd/server cp entrypoint-deploy.sh deploy/entrypoint.sh chmod +x deploy/entrypoint.sh echo "done -> deploy/server (含前端)"