提交 3f274fd9 authored 作者: 陈泽健's avatar 陈泽健

fix(services): 解决新统一java进程未打印问题,处理arm架构自动化部署脚本问题

- 将UjavaServices相关变量声明为全局变量以确保进程检测正常工作
- 修复新统一平台java服务进程检测逻辑,使用全局变量引用
- 更新自动化部署脚本中的java镜像路径为arm_java1.8.0_321.tar.gz
- 调整docker容器挂载路径映射,移除重复的web目录挂载
- 在容器启动命令中添加start.sh启动脚本执行
- 修复FastDFS中间件安装脚本中的镜像ID和标签配置
- 添加模块强制卸载机制确保使用最新版本模块
- 优化数组计数逻辑避免PowerShell版本兼容性问题
- 移除重复的平台类型检测逻辑,使用主函数检测结果
- 注释掉现场数据备份功能避免意外触发
- 增强参数验证和错误处理机制
上级 9466ced3
...@@ -135,7 +135,7 @@ $ServerList = @{ ...@@ -135,7 +135,7 @@ $ServerList = @{
# ujava 基础服务进程(支持容器内和宿主机检测) # ujava 基础服务进程(支持容器内和宿主机检测)
# 使用jar文件名作为匹配模式,不依赖完整路径 # 使用jar文件名作为匹配模式,不依赖完整路径
$UjavaServices = @{ $Global:UjavaServices = @{
"auth" = "ubains-auth.jar" "auth" = "ubains-auth.jar"
"gateway" = "ubains-gateway.jar" "gateway" = "ubains-gateway.jar"
"system" = "ubains-modules-system.jar" "system" = "ubains-modules-system.jar"
...@@ -149,24 +149,21 @@ $UjavaServices = @{ ...@@ -149,24 +149,21 @@ $UjavaServices = @{
# ujava 宿主机服务(新统一平台和传统平台) # ujava 宿主机服务(新统一平台和传统平台)
# 新统一平台路径:/data/services/api/java-meeting/java-meeting-extapi/ # 新统一平台路径:/data/services/api/java-meeting/java-meeting-extapi/
# 传统平台路径:可能在 /var/www/ 下 # 传统平台路径:可能在 /var/www/ 下
$UjavaHostServices = @{ $Global:UjavaHostServices = @{
"extapi" = "ubains-meeting-api-1.0-SNAPSHOT.jar" "extapi" = "ubains-meeting-api-1.0-SNAPSHOT.jar"
} }
# upython 容器内需要监听的端口 # upython 容器内需要监听的端口
$UpythonPorts = @( $Global:UpythonPorts = @(
@{ Port = 11211; Process = "memcached"; Description = "Memcached 缓存服务" } @{ Port = 11211; Process = "memcached"; Description = "Memcached 缓存服务" }
@{ Port = 8000; Process = "uwsgi"; Description = "uWSGI 应用服务" } @{ Port = 8000; Process = "uwsgi"; Description = "uWSGI 应用服务" }
) )
# upython_voice 容器内需要监听的端口 # upython_voice 容器内需要监听的端口
$UpythonVoicePorts = @( $Global:UpythonVoicePorts = @(
@{ Port = 1883; Process = "mosquitto"; Description = "MQTT Broker 服务" } @{ Port = 8002; Process = "httpd"; Description = "Apache HTTP 服务" }
@{ Port = 8000; Process = "uwsgi"; Description = "uWSGI 应用服务" } @{ Port = 8000; Process = "python"; Description = "Python/uWSGI 应用服务" }
@{ Port = 9001; Process = "mosquitto"; Description = "MQTT WebSocket 服务" } @{ Port = 11211; Process = "memcached"; Description = "Memcached 缓存服务" }
@{ Port = 11211; Process = "memcached"; Description = "Memcached 缓缓冲服务" }
@{ Port = 8080; Process = "nginx"; Description = "Nginx 代理服务 (8080)" }
@{ Port = 80; Process = "nginx"; Description = "Nginx Web 服务 (80)" }
) )
# ================================ # ================================
...@@ -279,6 +276,14 @@ $OldPlatformUpythonLogs = @( ...@@ -279,6 +276,14 @@ $OldPlatformUpythonLogs = @(
# 获取模块目录路径 # 获取模块目录路径
$ModulePath = Join-Path $SCRIPT_DIR "modules" $ModulePath = Join-Path $SCRIPT_DIR "modules"
# 强制卸载已加载的模块(确保使用最新版本)
$ModulesToUnload = @("ServiceCheck", "Common", "DNSCheck", "ServerResourceAnalysis", "NTPCheck", "ContainerCheck", "ConfigIPCheck", "MiddlewareCheck", "AndroidCheck", "LogExport", "Report")
foreach ($ModuleName in $ModulesToUnload) {
if (Get-Module -Name $ModuleName -ErrorAction SilentlyContinue) {
Remove-Module -Name $ModuleName -Force -ErrorAction SilentlyContinue
}
}
# 首先导入公共模块(包含 Write-Log 和 Invoke-SSHCommand) # 首先导入公共模块(包含 Write-Log 和 Invoke-SSHCommand)
try { try {
$CommonModulePath = Join-Path $ModulePath "Common.psm1" $CommonModulePath = Join-Path $ModulePath "Common.psm1"
...@@ -771,9 +776,9 @@ function Check-FilePermissions { ...@@ -771,9 +776,9 @@ function Check-FilePermissions {
Write-Log -Level "INFO" -Message "[PERM] 检测结束: 共 $($lines.Count) 项" Write-Log -Level "INFO" -Message "[PERM] 检测结束: 共 $($lines.Count) 项"
# 区分存在与缺失的统计 # 区分存在与缺失的统计
$foundCount = ($lines | Where-Object { $_ -notlike "MISS*" }).Count $foundCount = @($lines | Where-Object { $_ -notlike "MISS*" }).Count
$missCount = ($lines | Where-Object { $_ -like "MISS*" }).Count $missCount = @($lines | Where-Object { $_ -like "MISS*" }).Count
$summaryText = if ($lines.Count -gt 0) { "已检查: 找到 $foundCount 项, 缺失 $missCount 项" } else { "未找到任何匹配项" } $summaryText = "已检查: 找到 $foundCount 项, 缺失 $missCount 项"
return @{ Summary = $summaryText; Lines = $lines } return @{ Summary = $summaryText; Lines = $lines }
} }
...@@ -1245,21 +1250,10 @@ function Main { ...@@ -1245,21 +1250,10 @@ function Main {
# ------------------------------ # ------------------------------
# 平台类型判断与中间件日志路径映射 # 平台类型判断与中间件日志路径映射
# ------------------------------ # ------------------------------
# 判断平台类型:new(新统一平台)或 old(传统平台) # 中间件日志路径映射(使用Main函数开头已检测的$platformType)
# 通过检测 /data/services 目录是否存在来判断(与Test-UjavaHostsServices保持一致) # ------------------------------
$platformType = "old"
$checkPlatformCmd = "[ -d /data/services ] && echo 'new' || echo 'old'"
$platformCheckResult = Invoke-SSHCommand -HostName $server.IP -User $server.User -Pass $server.Pass -Port $server.Port -Command $checkPlatformCmd
# 使用与Test-UjavaHostsServices相同的输出处理逻辑
$outputLines = $platformCheckResult.Output -split "`n" | Where-Object { $_ -match '\S' }
$platformCheck = if ($outputLines) { ($outputLines | Select-Object -Last 1).Trim() } else { "" }
if ($platformCheck -eq "new" -or $platformCheck -eq "old") {
$platformType = $platformCheck
$platformName = if ($platformType -eq 'new') { '新统一平台' } else { '传统平台' } $platformName = if ($platformType -eq 'new') { '新统一平台' } else { '传统平台' }
Write-Log -Level "INFO" -Message "[中间件] 检测到平台类型: $platformType ($platformName)" Write-Log -Level "INFO" -Message "[中间件] 使用已检测平台类型: $platformType ($platformName)"
} else {
Write-Log -Level "WARN" -Message "[中间件] 平台类型检测失败,使用默认值: old"
}
# 中间件日志路径映射(根据平台类型) # 中间件日志路径映射(根据平台类型)
$middlewareEmqxLogPath = "" $middlewareEmqxLogPath = ""
...@@ -1417,14 +1411,14 @@ function Main { ...@@ -1417,14 +1411,14 @@ function Main {
$filePermResults = Check-FilePermissions -Server $server -PlatformType $platformType -SystemInfo $systemInfo $filePermResults = Check-FilePermissions -Server $server -PlatformType $platformType -SystemInfo $systemInfo
Write-Log -Level "INFO" -Message "========== 结束检测文件权限 ==========" Write-Log -Level "INFO" -Message "========== 结束检测文件权限 =========="
# 现场数据备份 (可选) # 现场数据备份 (可选) - 已注释禁用
$bakChoice = Read-Host "是否执行现场数据备份并下载? (y/n) [默认: n]" # $bakChoice = Read-Host "是否执行现场数据备份并下载? (y/n) [默认: n]"
$bakupResults = $null $bakupResults = $null
if ($bakChoice -eq 'y' -or $bakChoice -eq 'Y') { # if ($bakChoice -eq 'y' -or $bakChoice -eq 'Y') {
$bakupResults = DataBakup -Server $server -PlatformType $platformType -SystemInfo $systemInfo # $bakupResults = DataBakup -Server $server -PlatformType $platformType -SystemInfo $systemInfo
} else { # } else {
Write-Log -Level "INFO" -Message "跳过现场数据备份" Write-Log -Level "INFO" -Message "跳过现场数据备份 (已禁用)"
} # }
# 询问是否导出日志 # 询问是否导出日志
Write-Host "" Write-Host ""
......
...@@ -120,11 +120,29 @@ function Test-UjavaServices { ...@@ -120,11 +120,29 @@ function Test-UjavaServices {
Write-Log -Level "INFO" -Message "========== 检测 ujava 服务 (宿主机) ==========" Write-Log -Level "INFO" -Message "========== 检测 ujava 服务 (宿主机) =========="
} }
# 验证参数
if (-not $Server) {
Write-Log -Level "ERROR" -Message "[UJAVA] 参数验证失败: Server 参数为空"
return @()
}
if ($ContainerName) {
Write-Log -Level "INFO" -Message "[UJAVA] 容器名称: $ContainerName"
}
Write-Log -Level "INFO" -Message "[UJAVA] 平台类型: $PlatformType"
$results = @() $results = @()
# 遍历需要检测的服务 # 遍历需要检测的服务(使用全局变量)
foreach ($serviceName in $UjavaServices.Keys) { if ($global:UjavaServices) {
$jarFileName = $UjavaServices[$serviceName] Write-Log -Level "INFO" -Message "[UJAVA] 待检测服务数量: $($global:UjavaServices.Count)"
}
else {
Write-Log -Level "ERROR" -Message "[UJAVA] 错误: 全局变量 UjavaServices 未定义"
return @()
}
foreach ($serviceName in $global:UjavaServices.Keys) {
$jarFileName = $global:UjavaServices[$serviceName]
# 构建检测命令 # 构建检测命令
$checkCmd = $null $checkCmd = $null
...@@ -246,10 +264,16 @@ function Test-UjavaHostServices { ...@@ -246,10 +264,16 @@ function Test-UjavaHostServices {
Write-Host "" Write-Host ""
Write-Log -Level "INFO" -Message "========== 检测 ujava 宿主机服务 (extapi) ==========" Write-Log -Level "INFO" -Message "========== 检测 ujava 宿主机服务 (extapi) =========="
# 验证全局变量
if (-not $global:UjavaHostServices) {
Write-Log -Level "ERROR" -Message "[UJAVA-HOST] 错误: 全局变量 UjavaHostServices 未定义"
return @()
}
$results = @() $results = @()
foreach ($serviceName in $UjavaHostServices.Keys) { foreach ($serviceName in $global:UjavaHostServices.Keys) {
$jarFileName = $UjavaHostServices[$serviceName] $jarFileName = $global:UjavaHostServices[$serviceName]
# 检测宿主机进程(使用jar文件名匹配,不限定路径) # 检测宿主机进程(使用jar文件名匹配,不限定路径)
$checkCmd = "ps aux 2>/dev/null | grep -v grep | grep '$jarFileName' | wc -l" $checkCmd = "ps aux 2>/dev/null | grep -v grep | grep '$jarFileName' | wc -l"
......
# _PRD_新统一java进程未打印
> 来源:
- `AuxiliaryTool\ScriptTool\ServiceSelfInspection\check_server_health.ps1`
## 1. 背景与目标
### 1.1 背景
执行主运行脚本后java服务未打印进程信息。
### 1.2 目标
确保脚本能够正常使用,日志信息和报告信息都正常输出。
---
## 2. 问题报错信息
### 2.1 问题一
```
==================================================================
服务自检工具 (Windows 版本)
==================================================================
[2026-05-13 10:44:59] [INFO] 脚本版本: 1.0.5
[2026-05-13 10:44:59] [INFO] PowerShell 版本: 5.1.26100.8457
[2026-05-13 10:44:59] [INFO] 脚本路径: C:\Users\UBAINS\Desktop\Test-old\check_server_health.ps1
[2026-05-13 10:44:59] [INFO] 日志文件: C:\Users\UBAINS\Desktop\Test-old\logs\health_check_20260513_104458.log
[2026-05-13 10:44:59] [INFO] 检查系统依赖...
[2026-05-13 10:44:59] [INFO] Windows 版本: 10.0.26200
[2026-05-13 10:44:59] [INFO] plink 已找到 (本地): C:\Users\UBAINS\Desktop\Test-old\plink.exe
[2026-05-13 10:44:59] [INFO] pscp 已找到 (本地): C:\Users\UBAINS\Desktop\Test-old\pscp.exe
[2026-05-13 10:44:59] [INFO] 系统依赖检查通过 (使用 plink 进行密码认证)
[2026-05-13 10:44:59] [INFO] 可选择的目标服务器:
[1] 标准版预定运维服务器 (192.168.5.48 root)
[2] 阿曼项目预定服务器 (192.168.5.67 root)
[3] 标准版预定运维测试发布服务器 (192.168.5.47 root)
[4] 新统一平台测试服务器 (192.168.5.44 root)
[5] 云端ARM架构服务器-兰州 (139.159.163.86 root)
[6] 标准版预定运维测试发布服务器-映射端口14445 (nat.ubainsyun.com root)
[0] 手动输入服务器信息
请输入服务器编号: 0
[2026-05-13 10:44:59] [INFO] 进入手动输入模式
请输入目标服务器 IP 地址: 192.168.5.46
请输入 SSH 端口号 [默认 22]: 22
请输入登录用户名 [默认 root]: root
请输入登录密码: **********
[2026-05-13 10:45:06] [INFO] 已配置目标服务器: root@192.168.5.46:22
[2026-05-13 10:45:06] [INFO] 测试 SSH 连接...
[2026-05-13 10:45:06] [SUCCESS] SSH 连接测试通过
[2026-05-13 10:45:06] [INFO] 自动检测目标服务器平台类型...
[2026-05-13 10:45:06] [SUCCESS] 检测到 /data/services 目录存在,识别为【新统一平台】
[2026-05-13 10:45:06] [INFO] 自动检测系统类型(容器)...
[2026-05-13 10:45:07] [INFO] 检测到 upython_voice 容器: upython_voice -> 转录系统
[2026-05-13 10:45:07] [INFO] 检测到 upython 容器: upython -> 运维集控系统
[2026-05-13 10:45:07] [INFO] 检测到 ujava 容器: ujava2
[2026-05-13 10:45:07] [INFO] [系统细分] ujava -> 会议预定系统 (未检测到 /var/www/java/unifiedPlatform)
[2026-05-13 10:45:07] [INFO] ========== 检测 ujava 服务 (容器: ujava2) ==========
[2026-05-13 10:45:07] [INFO] ========== 检测 ujava 宿主机服务 (extapi) ==========
```
### 规范文档
- 代码规范: `Docs/PRD/01规范文档/_PRD_规范文档_代码规范.md`
- 问题总结: `Docs/PRD/01规范文档/_PRD_问题总结_记录文档.md`
- 方法总结: `Docs/PRD/01规范文档/_PRD_方法总结_记录文档.md`
- 文档规范: `Docs/PRD/01规范文档/_PRD_规范文档_文档规范.md`
- 测试规范: `Docs/PRD/01规范文档/_PRD_规范文档_测试规范.md`
---
*文档结束*
# _PRD_新统一java进程未打印_问题处理_计划执行
> PRD来源: `Docs/PRD/服务自检/问题修复/_PRD_新统一java进程未打印_问题处理.md`
---
## 1. 问题分析
### 1.1 问题描述
执行服务自检脚本后,检测到新统一平台ujava2容器,但Java进程信息未打印输出。
### 1.2 问题日志片段
```
[2026-05-13 10:45:07] [INFO] 自动检测系统类型(容器)...
[2026-05-13 10:45:07] [INFO] 检测到 ujava 容器: ujava2
[2026-05-13 10:45:07] [INFO] ========== 检测 ujava 服务 (容器: ujava2) ==========
[2026-05-13 10:45:07] [INFO] ========== 检测 ujava 宿主机服务 (extapi) ==========
```
### 1.3 根因分析
| 问题点 | 说明 |
|--------|------|
| 代码位置 | `modules/ServiceCheck.psm1:78-217``Test-UjavaServices` 函数 |
| 逻辑缺陷 | 函数定义时使用了 `[Parameter(Mandatory=$false)]`,参数可以为空导致执行流程异常 |
| 变量作用域 | `$UjavaServices` 变量定义在主脚本,模块内部访问可能存在作用域问题 |
| 检测逻辑 | Docker命令在容器内执行时可能因权限或路径问题导致无输出 |
---
## 2. 修复方案
### 2.1 方案设计
#### 方案A(已采纳):增强变量作用域和日志输出
- 在模块函数中明确使用 `$global:UjavaServices` 访问全局变量
- 添加函数入口参数验证日志
- 增强错误处理和日志输出
#### 方案B:将变量作为参数传递(备选)
- 修改函数签名,将 `$UjavaServices` 作为参数传递
### 2.2 代码修改点
| 位置 | 修改内容 |
|------|---------|
| `modules/ServiceCheck.psm1:126` | 修改为 `$global:UjavaServices.Keys` |
| `modules/ServiceCheck.psm1:127` | 修改为 `$global:UjavaServices[$serviceName]` |
| `modules/ServiceCheck.psm1:122-132` | 添加函数入口参数验证日志 |
---
## 3. 执行计划
### 3.1 修改清单
- [ ] 修改 `Test-UjavaServices` 函数使用全局变量
- [ ] 添加函数入口参数验证日志
- [ ] 增强错误处理和日志输出
- [ ] 测试验证
### 3.2 详细代码变更
#### 变更1: 使用全局变量访问UjavaServices
```powershell
# 修改前(第126-127行)
foreach ($serviceName in $UjavaServices.Keys) {
$jarFileName = $UjavaServices[$serviceName]
# 修改后
foreach ($serviceName in $global:UjavaServices.Keys) {
$jarFileName = $global:UjavaServices[$serviceName]
```
#### 变更2: 添加参数验证日志
```powershell
# 在第122行后添加
# 验证参数
if (-not $Server) {
Write-Log -Level "ERROR" -Message "[UJAVA] 参数验证失败: Server 参数为空"
return @()
}
if ($ContainerName) {
Write-Log -Level "INFO" -Message "[UJAVA] 容器名称: $ContainerName"
}
Write-Log -Level "INFO" -Message "[UJAVA] 平台类型: $PlatformType"
Write-Log -Level "INFO" -Message "[UJAVA] 待检测服务数量: $($global:UjavaServices.Count)"
```
#### 变更3: 增强错误处理
```powershell
# 在检测命令执行后添加
if (-not $result) {
Write-Log -Level "ERROR" -Message "[UJAVA] SSH命令执行失败: $checkCmd"
continue
}
if ($result.ExitCode -ne 0) {
Write-Log -Level "WARN" -Message "[UJAVA] 命令执行异常 (退出码: $($result.ExitCode)): $checkCmd"
}
```
### 3.3 测试验证步骤
1. 执行 `check_server_health.ps1` 连接新统一平台服务器
2. 验证日志中Java进程信息正确打印
3. 确认所有服务检测结果都有输出
---
## 4. 优化功能回填
| 优化项 | 状态 | 说明 |
|--------|------|------|
| 全局变量作用域修复 | 待实施 | 使用 $global:UjavaServices 访问全局变量 |
| 参数验证日志增强 | 待实施 | 添加函数入口参数验证和日志输出 |
| 错误处理优化 | 待实施 | 增强SSH命令执行错误处理 |
---
*文档生成时间: 2026-05-13*
...@@ -8,7 +8,7 @@ function java_arm() ...@@ -8,7 +8,7 @@ function java_arm()
# ------------------- 定义变量 ------------------- # ------------------- 定义变量 -------------------
local container_name="ujava2" local container_name="ujava2"
local image_tar="/data/temp/java1.8.0_321.tar.gz" local image_tar="/data/temp/arm_java1.8.0_321.tar.gz"
local image_name="139.9.60.86:5000/ujava:v4" local image_name="139.9.60.86:5000/ujava:v4"
local image_id="5772d73fd433" local image_id="5772d73fd433"
...@@ -318,9 +318,8 @@ function python_voice_arm() { ...@@ -318,9 +318,8 @@ function python_voice_arm() {
# ✅ 更新为实际的生产挂载路径 # ✅ 更新为实际的生产挂载路径
local mounts=( local mounts=(
"/data/services/api/python-voice:/var/www/html/api" "/data/services/api/python-voice:/var/www/html"
"/usr/share/zoneinfo:/usr/share/zoneinfo:ro" "/usr/share/zoneinfo:/usr/share/zoneinfo:ro"
"/data/services/web/pc/pc-vue2-voice:/var/www/html/web"
"/data/third_party/iFlyTrans/iflytek/iListen/voicePath:/home/iflytek/iListen/voicePath" "/data/third_party/iFlyTrans/iflytek/iListen/voicePath:/home/iflytek/iListen/voicePath"
"/data/third_party/iFlyTrans/iflytek/lingtOnlineHZ/online/:/home/iflytek/lingtOnlineHZ/online" "/data/third_party/iFlyTrans/iflytek/lingtOnlineHZ/online/:/home/iflytek/lingtOnlineHZ/online"
"/data/third_party/iFlyTrans/ubains/lingtOnlineHZ/online:/home/ubains/lingtOnlineHZ/online" "/data/third_party/iFlyTrans/ubains/lingtOnlineHZ/online:/home/ubains/lingtOnlineHZ/online"
...@@ -393,7 +392,8 @@ function python_voice_arm() { ...@@ -393,7 +392,8 @@ function python_voice_arm() {
-p 8004:8002 \ -p 8004:8002 \
-p 8080:8080 \ -p 8080:8080 \
"${mount_args[@]}" \ "${mount_args[@]}" \
"$target_image_tag" "$target_image_tag" \
/root/start.sh
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
log "ERROR" "❌ 容器启动失败,请检查端口占用或权限问题" log "ERROR" "❌ 容器启动失败,请检查端口占用或权限问题"
...@@ -649,18 +649,18 @@ function cardtable_arm() { ...@@ -649,18 +649,18 @@ function cardtable_arm() {
log "INFO" "✅ 镜像加载成功: $image_tag" log "INFO" "✅ 镜像加载成功: $image_tag"
# 3. 检查工作目录是否存在 # 3. 检查工作目录是否存在
if [ ! -d "$work_dir" ]; then if [ ! -d "$wifi_work_dir" ]; then
log "ERROR" "❌ 工作目录不存在: $work_dir" log "ERROR" "❌ 工作目录不存在: $wifi_work_dir"
log "ERROR" "💡 请先创建目录并放入配置文件" log "ERROR" "💡 请先创建目录并放入配置文件"
return 1 return 1
fi fi
log "INFO" "✅ 工作目录已存在: $work_dir" log "INFO" "✅ 工作目录已存在: $wifi_work_dir"
# 4. 设置文件权限(config、脚本、数据库组件) # 4. 设置文件权限(config、脚本、数据库组件)
log "INFO" "🔐 正在设置文件执行权限..." log "INFO" "🔐 正在设置文件执行权限..."
chmod 755 "$work_dir/config.ini" "$work_dir/startDB.sh" "$work_dir/wifi" chmod 755 "$wifi_work_dir/config.ini" "$wifi_work_dir/startDB.sh" "$wifi_work_dir/wifi"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
log "ERROR" "❌ 权限设置失败:$work_dir 下的文件" log "ERROR" "❌ 权限设置失败:$wifi_work_dir 下的文件"
return 1 return 1
fi fi
......
...@@ -516,8 +516,8 @@ function fastfds_arm() { ...@@ -516,8 +516,8 @@ function fastfds_arm() {
# ------------------- 定义变量 ------------------- # ------------------- 定义变量 -------------------
local container_name="utracker" local container_name="utracker"
local image_tar="/data/temp/arm_fastdfs.tar" local image_tar="/data/temp/arm_fastdfs.tar"
local image_name="139.9.60.86:5000/ufastdfs:v2" local image_name="ufastdfs:v2"
local image_id="ab3274a2b55f" local image_id="7db35cb35616"
local host_data_dir="/data/storage/storage" local host_data_dir="/data/storage/storage"
log "INFO" "==================================================================" log "INFO" "=================================================================="
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论