topfans/docker/快速配置更新指南.md
2026-04-08 20:48:38 +08:00

2.2 KiB
Raw Blame History

快速配置更新指南

场景:只修改了配置,不想重新推送镜像

1. 更新配置文件到服务器

cd /Users/liulujian/Documents/code/TopFansByGithub/docker

# 上传 .env.prod
sshpass -p '>n73qBnCja-,#VF+Wq' scp -P 22 .env.prod root@101.132.250.62:/opt/topfans/docker/

# 上传 docker-compose.prod.yml如果也修改了
sshpass -p '>n73qBnCja-,#VF+Wq' scp -P 22 docker-compose.prod.yml root@101.132.250.62:/opt/topfans/docker/

2. 重启服务

sshpass -p '>n73qBnCja-,#VF+Wq' ssh -o StrictHostKeyChecking=no -p 22 root@101.132.250.62 '
cd /opt/topfans/docker
docker-compose -f docker-compose.prod.yml down
docker-compose -f docker-compose.prod.yml up -d
'

3. 验证服务状态

sshpass -p '>n73qBnCja-,#VF+Wq' ssh -o StrictHostKeyChecking=no -p 22 root@101.132.250.62 "curl -s http://localhost:8080/health"

添加 upload-config 命令到 deploy.sh

如果你想让 deploy.sh 支持直接上传配置,可以添加以下命令:

# 在 deploy.sh 的 main 函数中添加:
upload-config)
    print_step "📤 上传配置文件到服务器"
    scp_cmd "${SCRIPT_DIR}/docker-compose.prod.yml" "${SERVER_USER}@${SERVER_HOST}:${SERVER_PATH}/"
    scp_cmd "${SCRIPT_DIR}/.env.prod" "${SERVER_USER}@${SERVER_HOST}:${SERVER_PATH}/"
    print_msg "$GREEN" "✅ 配置文件上传完成"
    print_msg "$YELLOW" "请手动重启服务: docker-compose -f docker-compose.prod.yml down && up -d"
    ;;

然后使用方式:

./deploy.sh upload-config --server 101.132.250.62

注意事项

  1. 不需要重新 build 镜像 - 配置修改不需要重新构建 Docker 镜像
  2. env_file 优先级 - docker-compose 中 env_file: .env.prod 会覆盖 environment 中的变量
  3. 敏感信息 - .env.prod 包含敏感信息,请勿提交到 Git

快速验证

# 查看服务状态
sshpass -p '>n73qBnCja-,#VF+Wq' ssh -o StrictHostKeyChecking=no -p 22 root@101.132.250.62 "docker ps --format 'table {{.Names}}\t{{.Status}}'"

# 查看环境变量是否生效
sshpass -p '>n73qBnCja-,#VF+Wq' ssh -o StrictHostKeyChecking=no -p 22 root@101.132.250.62 "docker exec topfans-gateway env | grep OSS"