优化部署脚本非交互变量支持
This commit is contained in:
@@ -6,6 +6,41 @@
|
||||
git clone --depth 1 https://git.51easyai.com/wangbo/easyai.git && cd easyai && chmod +x start.sh && ./start.sh
|
||||
```
|
||||
|
||||
也可以通过环境变量直接传入部署方式,脚本会跳过对应问答:
|
||||
|
||||
```bash
|
||||
# IP 访问
|
||||
DEPLOY_ACCESS=ip DEPLOY_IP=服务器IP ./start.sh
|
||||
|
||||
# 域名访问,不申请 HTTPS 证书
|
||||
DEPLOY_ACCESS=domain DEPLOY_DOMAIN=demo.example.com DEPLOY_HTTPS=false ./start.sh
|
||||
|
||||
# 域名访问,并自动申请 HTTPS 证书
|
||||
DEPLOY_ACCESS=domain DEPLOY_DOMAIN=demo.example.com DEPLOY_HTTPS=true CERTBOT_EMAIL=ops@example.com ./start.sh
|
||||
```
|
||||
|
||||
常用变量:
|
||||
|
||||
| 变量 | 说明 |
|
||||
|------|------|
|
||||
| `DEPLOY_ACCESS` | `ip` 或 `domain`;未传时进入问答选择 |
|
||||
| `DEPLOY_IP` | IP 模式访问地址,如 `10.0.0.8` |
|
||||
| `DEPLOY_DOMAIN` | 域名模式访问地址,可带 `http://` 或 `https://`,脚本会自动清理 |
|
||||
| `DEPLOY_HTTPS` | `true/false`,域名模式下是否申请 HTTPS 证书 |
|
||||
| `CERTBOT_EMAIL` | 申请 HTTPS 证书使用的邮箱,默认 `wangbo@51easyai.com` |
|
||||
| `DEPLOY_FORCE_RECONFIG` | 非空时即使已有 `.env` 也重新生成部署配置 |
|
||||
| `DEPLOY_DRY_RUN` | `1` 时只生成配置文件,不安装 Docker、不启动服务 |
|
||||
| `DEPLOY_NON_INTERACTIVE` | `1` 时缺少必要变量会直接报错,不再进入问答 |
|
||||
| `DEPLOY_MAC_DOCKER_INSTALL` | macOS 未安装 Docker 时使用,`auto` 自动安装或 `manual` 提示手动安装 |
|
||||
|
||||
`https.sh` 单独执行时也可以跳过域名选择:
|
||||
|
||||
```bash
|
||||
DEPLOY_DOMAIN=demo.example.com EASYAI_PROXY_CONF=demo.example.com.conf CERTBOT_EMAIL=ops@example.com ./https.sh
|
||||
```
|
||||
|
||||
如需对已有 Nginx 配置追加或替换域名,可设置 `EASYAI_PROXY_DOMAIN_ACTION=add|replace`;未设置时默认追加。
|
||||
|
||||
### Windows
|
||||
|
||||
在 **PowerShell** 中执行:
|
||||
@@ -14,6 +49,24 @@ git clone --depth 1 https://git.51easyai.com/wangbo/easyai.git && cd easyai && c
|
||||
git clone --depth 1 "https://git.51easyai.com/wangbo/easyai.git" "easyai"; Set-Location "easyai"; powershell.exe -NoProfile -ExecutionPolicy Bypass -File ".\start.ps1"
|
||||
```
|
||||
|
||||
Windows 也支持变量方式跳过选择:
|
||||
|
||||
```powershell
|
||||
# 本机访问
|
||||
$env:DEPLOY_ACCESS = "local"
|
||||
powershell.exe -NoProfile -ExecutionPolicy Bypass -File ".\start.ps1"
|
||||
|
||||
# 局域网访问
|
||||
$env:DEPLOY_IP = "192.168.1.10"
|
||||
powershell.exe -NoProfile -ExecutionPolicy Bypass -File ".\start.ps1"
|
||||
|
||||
# 仅生成配置,不启动 Docker
|
||||
$env:DEPLOY_IP = "127.0.0.1"
|
||||
$env:DEPLOY_DRY_RUN = "1"
|
||||
$env:DEPLOY_NO_WAIT = "1"
|
||||
powershell.exe -NoProfile -ExecutionPolicy Bypass -File ".\start.ps1"
|
||||
```
|
||||
|
||||
> **Windows 脚本权限说明**:PowerShell 默认禁止运行脚本,直接双击 `start.ps1` 会闪退。
|
||||
>
|
||||
> - **推荐**:使用 `powershell.exe -NoProfile -ExecutionPolicy Bypass -File ".\start.ps1"` 执行,无需修改系统策略
|
||||
@@ -48,6 +101,12 @@ mv easyai easyai2
|
||||
```
|
||||
|
||||
3. 重新执行一键部署命令,按脚本提示完成初始化输入。
|
||||
如果希望跳过问答,可直接传入变量:
|
||||
```bash
|
||||
DEPLOY_ACCESS=ip DEPLOY_IP=服务器IP ./start.sh
|
||||
# 或
|
||||
DEPLOY_ACCESS=domain DEPLOY_DOMAIN=demo.example.com DEPLOY_HTTPS=false ./start.sh
|
||||
```
|
||||
|
||||
4. 当脚本询问是否启用 HTTPS 时:
|
||||
- 如果你之前已经有可用证书,填写 `N`(不生成新证书)。
|
||||
@@ -80,6 +139,18 @@ chmod +x update.sh
|
||||
- `[2]` 仅更新镜像并重启(跳过 git pull,适用于有本地修改不想被覆盖的场景)
|
||||
- 如果本次**不涉及配置文件更新**(如 `.env*`、`docker-compose.yml`、`easyai-proxy.conf*` 无变更),可直接选择 `[2]`,仅更新后台服务镜像并重启即可。
|
||||
|
||||
- 自动化更新可通过变量跳过选择:
|
||||
```bash
|
||||
# 更新仓库 + 拉取镜像 + 重启(等同默认选 1)
|
||||
UPDATE_MODE=full ./update.sh
|
||||
|
||||
# 仅拉取镜像 + 重启(等同选 2)
|
||||
UPDATE_MODE=image ./update.sh
|
||||
|
||||
# 或使用布尔变量
|
||||
UPDATE_SKIP_REPO_UPDATE=true ./update.sh
|
||||
```
|
||||
|
||||
- **查看帮助**:`./update.sh -h` 或 `./update.sh --help`
|
||||
|
||||
### 更新说明
|
||||
@@ -94,6 +165,12 @@ Windows 下使用 `update.ps1`,功能与 Linux 版一致:
|
||||
```
|
||||
- 执行后会**命令行内选择**:`[1]` 更新并拉取仓库 + 更新镜像(默认);`[2]` 仅更新镜像
|
||||
- 需在 Git 克隆的 easyai 目录下运行
|
||||
- 也可通过变量跳过选择:
|
||||
```powershell
|
||||
$env:UPDATE_MODE = "image"
|
||||
$env:UPDATE_NO_WAIT = "1"
|
||||
.\update.ps1
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user