优化update.sh脚本,使之具有自动更新docker-compose.yml配置文件的能力
This commit is contained in:
parent
5bf9c34bda
commit
c539d74e39
145
README.md
145
README.md
@ -26,7 +26,7 @@ chmod +x start.sh
|
||||
6. 脚本运行完成无错误,并且提示`EasyAI应用启动成功`表示应用启动成功,打开浏览器输入服务器的公网ip:3010或者局域网IP:3010,即可访问EasyAI应用
|
||||
|
||||
### 启用HTTPS
|
||||
1. [更改为你的域名]修改easyai-proxy.conf中域名51easyai.com为你的域名[可以使用Ctrl+F批量替换51easyai.com为你的域名]
|
||||
1. [更改为你的域名]修改`easyai-proxy.conf`中域名`51easyai.com`为你的域名[可以使用Ctrl+F批量替换51easyai.com为你的域名]
|
||||
2. [修改.env文件]修改如下两个环境变量为如下的对应的值
|
||||
```bash
|
||||
NUXT_PUBLIC_BASE_APIURL=/api
|
||||
@ -42,51 +42,146 @@ chmod +x https.sh
|
||||
```
|
||||
|
||||
### 更新升级
|
||||
update.sh 脚本用于自动更新 EasyAI 应用,包含以下功能:
|
||||
- 自动检查和更新 `docker-compose.yml` 文件(从远程仓库获取最新版本)
|
||||
- 兼容 `docker compose` 和 `docker-compose` 两种命令格式
|
||||
- 自动拉取最新镜像并重启服务
|
||||
|
||||
#### 使用步骤
|
||||
1. [首次执行,后续无需重复执行]添加执行权限,命令:
|
||||
```bash
|
||||
chmod +x update.sh
|
||||
```
|
||||
2.执行更新
|
||||
|
||||
2. 执行更新(默认会检查并更新 docker-compose.yml)
|
||||
```bash
|
||||
./update.sh
|
||||
```
|
||||
|
||||
#### 参数选项
|
||||
- **跳过 docker-compose.yml 更新**:如果你已经手动修改了 `docker-compose.yml` 文件,可以使用 `-s` 或 `--skip-compose-update` 参数跳过更新
|
||||
```bash
|
||||
# 跳过 docker-compose.yml 更新,仅更新容器镜像
|
||||
./update.sh -s
|
||||
# 或
|
||||
./update.sh --skip-compose-update
|
||||
```
|
||||
|
||||
- **查看帮助信息**:
|
||||
```bash
|
||||
./update.sh -h
|
||||
# 或
|
||||
./update.sh --help
|
||||
```
|
||||
|
||||
#### 更新说明
|
||||
- 脚本会自动从远程仓库下载最新的 `docker-compose.yml` 文件
|
||||
- 如果本地文件与远程文件不同,会将原文件备份为 `docker-compose.yml.bak`
|
||||
- 如果本地文件已是最新版本,则跳过更新
|
||||
- 更新完成后会自动执行 `docker-compose pull` 和 `docker-compose up -d` 来重启服务
|
||||
|
||||
|
||||
|
||||
## 重要更新记录:
|
||||
|
||||
2025.5.14
|
||||
1. 修改easyai-proxy文件,删除原来旧的MCP转发,新增新的标准SSE的代理优化
|
||||
### 2025.12.27
|
||||
1. 修复挂载报错问题
|
||||
|
||||
### 2025.12.26
|
||||
1. 增加临时文件目录挂载,解决只读文件系统问题
|
||||
2. 增加后端日志目录挂载,便于日志管理和查看
|
||||
|
||||
2025.3.11
|
||||
### 2025.12.05
|
||||
1. 更新新的视频编辑容器,支持更多视频处理功能
|
||||
|
||||
### 2025.11.12
|
||||
1. 删除redis内存限制配置
|
||||
|
||||
### 2025.11.11
|
||||
1. 增加redis内存限制配置
|
||||
|
||||
### 2025.09.22
|
||||
1. 更新配置文件中的密钥设置,用于平台对接
|
||||
2. 优化docker环境变量配置,直接在docker中引入env file,避免每次都需要手动增加环境变量
|
||||
|
||||
### 2025.09.20
|
||||
1. 优化redis和MQ的云端配置
|
||||
|
||||
### 2025.08.31
|
||||
1. 优化nginx配置,支持插件功能
|
||||
|
||||
### 2025.08.19
|
||||
1. 更新部署相关文件
|
||||
|
||||
### 2025.08.08
|
||||
1. 优化部署方式为pm2,提升应用稳定性
|
||||
|
||||
### 2025.07.28
|
||||
1. 增加缓存目录挂载,让nodeJS执行子进程有操作缓存的权限
|
||||
|
||||
### 2025.07.12
|
||||
1. 优化docker重启策略
|
||||
2. 增加minio相关配置说明
|
||||
|
||||
### 2025.07.05
|
||||
1. 优化安装docker-compose的脚本,增加本地docker-compose的兜底方案
|
||||
2. 兼容 `docker compose` 和 `docker-compose` 两种命令格式
|
||||
|
||||
### 2025.07.04
|
||||
1. 适配新的文件上传功能
|
||||
2. 增加后端文件上传目录的挂载
|
||||
3. 增加二级域名的取消域名重定向注释说明
|
||||
|
||||
### 2025.06.24
|
||||
1. 增加禁用文档的环境变量和配置选项
|
||||
|
||||
### 2025.06.12
|
||||
1. 增加CentOS系统兼容性支持
|
||||
|
||||
### 2025.06.06
|
||||
1. 删除MCP server的配置
|
||||
|
||||
### 2025.06.04
|
||||
1. 删除newAPI相关配置
|
||||
|
||||
### 2025.05.26
|
||||
1. 删除旧websocket MCP环境变量配置
|
||||
|
||||
### 2025.05.15
|
||||
1. 优化MCP消息转发Nginx配置文件
|
||||
|
||||
### 2025.05.14
|
||||
1. 删除原MCP旧配置,增加新的MCP配置
|
||||
2. 修改easyai-proxy文件,删除原来旧的MCP转发,新增新的标准SSE的代理优化
|
||||
3. 更新README文档
|
||||
|
||||
### 2025.05.13
|
||||
1. 增加docker-compose文件
|
||||
|
||||
### 2025.03.11
|
||||
1. 增加了redis的配置文件,提升了生产环境的稳定性
|
||||
|
||||
|
||||
### 早期版本
|
||||
1. 升级了mongoDB的数据挂载方式,使用volume挂载,避免跨平台的一些数据挂载问题
|
||||
2. .env增加了版本,日志和token参数的配置
|
||||
2. .env增加了版本、日志和token参数的配置
|
||||
|
||||
|
||||
|
||||
### 重要!!!!!!!!老用户必看!!!!!!!!!!!!!!
|
||||
此版本docker-compose修改了mongo数据库的挂载方式,老用户升级务必备份数据!!!
|
||||
老用户备份好数据后,如果要保留原有数据,需要将volumes里第一行的# 去掉,将下面的一行(- mongo_data:/data/db )前面加上#注释掉!
|
||||
|
||||
```bash
|
||||
mongo:
|
||||
image: registry.cn-shanghai.aliyuncs.com/comfy-ai/mongo-aliyun:latest
|
||||
#省略内容
|
||||
........
|
||||
volumes:
|
||||
# - /usr/local/mongo/data:/data/db # 挂载本地数据
|
||||
- mongo_data:/data/db # 使用docker volume存储数据,提高性能,避免兼容性问题
|
||||
........
|
||||
```
|
||||
|
||||
## 常见问题
|
||||
1. 启动时提示`Error: listen EADDRINUSE: address already in use :::3000`
|
||||
|
||||
1. 某个服务无法运行
|
||||
解决方案:重启docker(可以解决99%的问题)
|
||||
|
||||
```bash
|
||||
#
|
||||
cd easyai && docker compose down && docker compose up -d
|
||||
#如果提示docker "compose" is not a docker command,则使用下面的命令
|
||||
cd easyai && docker-compose down && docker-compose up -d
|
||||
|
||||
```
|
||||
|
||||
2. 启动时提示`Error: listen EADDRINUSE: address already in use :::3000`
|
||||
端口占用,请检查端口3000是否被其他程序占用
|
||||
2. invalid interpolation format for services.mongo.ports.[]. You may need to escape any $ with another $ 等关于docker-compose文件格式的报错
|
||||
3. invalid interpolation format for services.mongo.ports.[]. You may need to escape any $ with another $ 等关于docker-compose文件格式的报错
|
||||
解决方案:docker-compose 版本太低,一般为服务器之前自己使用apt安装低版本的docker-compose,需要卸载重新安装
|
||||
```bash
|
||||
# 卸载docker-compose
|
||||
|
||||
90
update.sh
90
update.sh
@ -2,6 +2,78 @@
|
||||
|
||||
set -e # 发生错误时终止脚本执行
|
||||
|
||||
# 参数解析
|
||||
SKIP_COMPOSE_UPDATE=false
|
||||
|
||||
# 解析命令行参数
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case $1 in
|
||||
--skip-compose-update|-s)
|
||||
SKIP_COMPOSE_UPDATE=true
|
||||
shift
|
||||
;;
|
||||
--help|-h)
|
||||
echo "用法: $0 [选项]"
|
||||
echo ""
|
||||
echo "选项:"
|
||||
echo " -s, --skip-compose-update 跳过 docker-compose.yml 的更新"
|
||||
echo " -h, --help 显示此帮助信息"
|
||||
echo ""
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo "❌ 未知参数: $1"
|
||||
echo "使用 --help 或 -h 查看帮助信息"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# 更新 docker-compose.yml 文件
|
||||
if [ "$SKIP_COMPOSE_UPDATE" = false ]; then
|
||||
echo ""
|
||||
echo "==========================="
|
||||
echo "📄 检查并更新 docker-compose.yml"
|
||||
echo "==========================="
|
||||
|
||||
COMPOSE_FILE="docker-compose.yml"
|
||||
COMPOSE_URL="https://git.51easyai.com/wangbo/easyai/raw/main/docker-compose.yml"
|
||||
TEMP_FILE=$(mktemp)
|
||||
|
||||
# 检查本地文件是否存在
|
||||
if [ ! -f "$COMPOSE_FILE" ]; then
|
||||
echo "⚠️ 本地 $COMPOSE_FILE 不存在,直接下载最新版本..."
|
||||
curl -fsSL "$COMPOSE_URL" -o "$COMPOSE_FILE"
|
||||
echo "✅ $COMPOSE_FILE 已下载"
|
||||
else
|
||||
echo "📥 正在下载远程 $COMPOSE_FILE..."
|
||||
if curl -fsSL "$COMPOSE_URL" -o "$TEMP_FILE"; then
|
||||
# 比较本地文件和远程文件的内容
|
||||
if cmp -s "$COMPOSE_FILE" "$TEMP_FILE"; then
|
||||
echo "✅ 本地 $COMPOSE_FILE 已是最新版本,无需更新"
|
||||
rm -f "$TEMP_FILE"
|
||||
else
|
||||
echo "🔄 检测到新版本,正在更新..."
|
||||
# 备份原文件
|
||||
BACKUP_FILE="${COMPOSE_FILE}.bak"
|
||||
cp "$COMPOSE_FILE" "$BACKUP_FILE"
|
||||
echo "💾 原文件已备份为 $BACKUP_FILE"
|
||||
# 替换为新文件
|
||||
mv "$TEMP_FILE" "$COMPOSE_FILE"
|
||||
echo "✅ $COMPOSE_FILE 已更新到最新版本"
|
||||
fi
|
||||
else
|
||||
echo "❌ 无法下载远程文件,跳过更新步骤"
|
||||
rm -f "$TEMP_FILE"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo ""
|
||||
else
|
||||
echo "⏭️ 跳过 docker-compose.yml 更新(已使用 --skip-compose-update 参数)"
|
||||
echo ""
|
||||
fi
|
||||
|
||||
echo "==========================="
|
||||
echo "🚀 开始自动安装 Docker 和 Docker Compose"
|
||||
echo "==========================="
|
||||
@ -30,24 +102,32 @@ else
|
||||
sudo systemctl start docker
|
||||
fi
|
||||
|
||||
# 检查 Docker Compose 是否已安装
|
||||
if command -v docker-compose &> /dev/null; then
|
||||
echo "✅ Docker Compose 已安装,跳过安装步骤"
|
||||
# 检测并使用正确的 Docker Compose 命令
|
||||
# 优先使用新版本的 docker compose(作为 docker 的子命令)
|
||||
if docker compose version &> /dev/null; then
|
||||
DOCKER_COMPOSE_CMD="docker compose"
|
||||
echo "✅ 检测到 Docker Compose (新版本: docker compose)"
|
||||
elif command -v docker-compose &> /dev/null; then
|
||||
DOCKER_COMPOSE_CMD="docker-compose"
|
||||
echo "✅ 检测到 Docker Compose (旧版本: docker-compose)"
|
||||
else
|
||||
echo "⚙️ 安装 Docker Compose..."
|
||||
sudo mv ./docker-compose-linux-x86_64 /usr/bin/docker-compose
|
||||
#设置权限
|
||||
chmod +x /usr/bin/docker-compose
|
||||
DOCKER_COMPOSE_CMD="docker-compose"
|
||||
echo "✅ Docker Compose 安装完成"
|
||||
fi
|
||||
|
||||
echo "📌 Docker 运行状态:"
|
||||
sudo systemctl status docker --no-pager || true
|
||||
|
||||
echo "📌 Docker Compose 版本:"
|
||||
docker-compose -v
|
||||
$DOCKER_COMPOSE_CMD version
|
||||
|
||||
echo "🎉 Docker 和 Docker Compose 已就绪!"
|
||||
|
||||
|
||||
echo "🚀 重新启动EasyAI"
|
||||
sudo docker-compose pull && sudo docker-compose up -d
|
||||
sudo $DOCKER_COMPOSE_CMD pull && sudo $DOCKER_COMPOSE_CMD up -d
|
||||
echo "🎉EasyAI应用更新成功"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user