74 lines
2.2 KiB
Markdown
74 lines
2.2 KiB
Markdown
# 快速配置更新指南
|
||
|
||
## 场景:只修改了配置,不想重新推送镜像
|
||
|
||
### 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"
|
||
```
|