mirror of
https://gitee.com/NexIoT/Universal-IoT-Java.git
synced 2026-08-29 06:51:35 +08:00
34 lines
1.4 KiB
PowerShell
34 lines
1.4 KiB
PowerShell
param()
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
Write-Host "🚀 启动独立前端 Docker 服务..."
|
|
|
|
$ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
|
|
$WebUiRoot = (Resolve-Path (Join-Path $ScriptDir "..")).Path
|
|
|
|
try { docker info | Out-Null } catch { Write-Host "❌ Docker 未运行,请先启动 Docker"; exit 1 }
|
|
|
|
$useDockerCompose = $false
|
|
try { docker compose version | Out-Null; $useDockerCompose = $true } catch { try { docker-compose version | Out-Null } catch { Write-Host "❌ Docker Compose 不可用,请检查安装"; exit 1 } }
|
|
|
|
if (-not (Test-Path (Join-Path $ScriptDir ".env"))) { if (Test-Path (Join-Path $ScriptDir "env.example")) { Copy-Item (Join-Path $ScriptDir "env.example") (Join-Path $ScriptDir ".env") -Force } }
|
|
|
|
if (-not (Test-Path (Join-Path $WebUiRoot "dist"))) {
|
|
Write-Host "🔨 前端未构建,开始执行 NPM 构建..."
|
|
Push-Location $WebUiRoot
|
|
& npm ci
|
|
& npm run build
|
|
Pop-Location
|
|
}
|
|
|
|
Write-Host "🔧 构建镜像并启动服务..."
|
|
Push-Location $ScriptDir
|
|
if ($useDockerCompose) { docker compose up -d --build } else { docker-compose up -d --build }
|
|
Pop-Location
|
|
|
|
$port = if ($env:FRONTEND_PORT) { $env:FRONTEND_PORT } else { 80 }
|
|
Write-Host "✅ 前端已启动: http://localhost:$port"
|
|
Write-Host "📊 查看状态: (cd cn-universal-web-ui/docker && docker compose ps) 或 docker-compose ps"
|
|
Write-Host "🔍 查看日志: (cd cn-universal-web-ui/docker && docker compose logs -f) 或 docker-compose logs -f"
|