运维手册
服务信息
| 服务 |
端口 |
容器名 |
镜像 |
| 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 密码 |