#!/usr/bin/env bash # ============================================================= # 寄卖商城(integral-resell)一键部署脚本 # 目标服务器:116.62.83.240 # 使用方式:bash deploy/docker/scripts/deploy-step1.sh # ============================================================= set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd)" STEP1_DIR="${PROJECT_ROOT}/deploy/docker/step1-integral" # ---------- 读取服务器配置 ---------- if [ -f "$SCRIPT_DIR/server.env" ]; then set -a; . "$SCRIPT_DIR/server.env"; set +a else echo "[!] 未找到 server.env,请先创建"; exit 1 fi SERVER_HOST="${SERVER_HOST:?}" SERVER_USER="${SERVER_USER:-root}" SERVER_PORT="${SERVER_PORT:-22}" REMOTE_DIR="${REMOTE_DIR:-/root/integral-shop}" REMOTE_STEP1="${REMOTE_DIR}/deploy/docker/step1-integral" REDIS_PASS="LeileiRedis@8899" DB_PASS="5Fn8eWrbYFtAhCZw" # ---------- SSH / rsync 通道 ---------- export SSHPASS="${SSHPASS:?缺少 SSHPASS}" SSH_OPTS="-p $SERVER_PORT -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" SSH=(sshpass -e ssh $SSH_OPTS) RSYNC_SSH="sshpass -e ssh $SSH_OPTS" RSYNC_BIN="/opt/homebrew/bin/rsync" [ -x "$RSYNC_BIN" ] || RSYNC_BIN="rsync" remote() { "${SSH[@]}" "${SERVER_USER}@${SERVER_HOST}" "$@"; } echo "" echo "══════════════════════════════════════════════════════" echo " 寄卖商城 Docker 一键部署 → ${SERVER_HOST}" echo "══════════════════════════════════════════════════════" # ─── 1. 生成本地临时 env 文件 ───────────────────────────────── echo "" echo "▶ [1/6] 生成临时 .env / houtai.env ..." TMPENV=$(mktemp -d) trap 'rm -rf "$TMPENV"' EXIT cat > "$TMPENV/.env" < "$TMPENV/houtai.env" <