ops.md 3.5 KB

运维手册

服务信息

服务 端口 容器名 镜像
Java 后端 8001 java-backend xjz/java-backend:1.0.0
前端 5173 frontend xjz/frontend:2.5.4

后端部署

首次启动

docker run -d --name java-backend \
  -p 8001:8001 \
  --network payment-platform_app-tier \
  -e TZ=Asia/Shanghai \
  -e SPRING_PROFILES_ACTIVE=prod \
  -e JAVA_OPTS="-Xms256m -Xmx512m" \
  -e SPRING_DATASOURCE_DRUID_URL="jdbc:postgresql://postgres:5432/payment_platform_java?currentSchema=public" \
  -e SPRING_DATASOURCE_DRUID_USERNAME=admin \
  -e SPRING_DATASOURCE_DRUID_PASSWORD='xjz#123321' \
  -e SPRING_DATA_REDIS_HOST=redis \
  -e SPRING_DATA_REDIS_PORT=6379 \
  -e SPRING_DATA_REDIS_DATABASE=0 \
  -e SPRING_DATA_REDIS_PASSWORD='123456#xjz' \
  xjz/java-backend:1.0.0

更新部署(重启 JAR)

# 1. 本地构建 JAR
cd /home/payments/code/payment-platform/java
mvn package -DskipTests -q

# 2. 复制到容器
docker cp target/payment-platform-1.0.0.jar java-backend:/app.jar

# 3. 停止旧容器,删除并重建
docker stop java-backend && docker rm java-backend

# 4. 重新启动(使用首次启动的 docker run 命令)
docker run -d --name java-backend \
  -p 8001:8001 \
  --network payment-platform_app-tier \
  -e TZ=Asia/Shanghai \
  -e SPRING_PROFILES_ACTIVE=prod \
  -e JAVA_OPTS="-Xms256m -Xmx512m" \
  -e SPRING_DATASOURCE_DRUID_URL="jdbc:postgresql://postgres:5432/payment_platform_java?currentSchema=public" \
  -e SPRING_DATASOURCE_DRUID_USERNAME=admin \
  -e SPRING_DATASOURCE_DRUID_PASSWORD='xjz#123321' \
  -e SPRING_DATA_REDIS_HOST=redis \
  -e SPRING_DATA_REDIS_PORT=6379 \
  -e SPRING_DATA_REDIS_DATABASE=0 \
  -e SPRING_DATA_REDIS_PASSWORD='123456#zjz' \
  xjz/java-backend:1.0.0

注意: 不要用 docker restart,容器缓存可能导致 JAR 不更新。必须 stop + rm + run

验证部署

# 1. 确认容器运行中
docker ps | grep java-backend

# 2. 确认启动成功(等 30 秒后)
docker logs java-backend --tail 20

# 3. 健康检查
curl http://localhost:8001/api/v1/payment/notify/health
# 应返回: {"code":0,...}

# 4. 确认代码版本
docker cp java-backend:/app.jar /tmp/app.jar
unzip -p /tmp/app.jar "BOOT-INF/classes/com/payment/platform/module/system/auth/service/AuthService.class" > /tmp/AS.class
strings /tmp/AS.class | grep "<关键字>"

前端部署

# 本地构建
cd /home/payments/code/payment-platform/frontend
npm run build

# 复制到容器
docker cp dist/. frontend:/usr/share/nginx/html/

# 重载 nginx(如果容器内配置了 nginx)
docker exec frontend nginx -s reload

小程部署

cd /home/payments/code/payment-mini
npm run build:alipay

# 打开支付宝开发者工具 → 上传

常用命令

查看日志

# 后端实时日志
docker logs -f java-backend

# 最近 100 行
docker logs java-backend --tail 100

# 过滤错误
docker logs java-backend --tail 200 2>&1 | grep -iE "ERROR|WARN"

数据库

# 连接 PostgreSQL
docker exec -it postgres psql -U admin -d payment_platform_java

RocketMQ

# 查看消息队列
docker logs rocketmq-broker --tail 50

环境变量

变量 默认值 说明
SPRING_PROFILES_ACTIVE prod Spring 配置环境
JAVA_OPTS -Xms256m -Xmx512m JVM 参数
SPRING_DATASOURCE_DRUID_URL PG 连接串
SPRING_DATA_REDIS_HOST redis Redis 地址
SPRING_DATA_REDIS_PASSWORD Redis 密码