# 快速配置更新指南 ## 场景:只修改了配置,不想重新推送镜像 ### 1. 更新配置文件到服务器 ```bash 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. 重启服务 ```bash 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. 验证服务状态 ```bash 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 支持直接上传配置,可以添加以下命令: ```bash # 在 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" ;; ``` 然后使用方式: ```bash ./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 --- ## 快速验证 ```bash # 查看服务状态 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" ```