fix: 修复 TenantApi watch 根目录识别

This commit is contained in:
root
2026-01-30 01:28:38 +00:00
parent 594b50b276
commit c06773499d
2 changed files with 52 additions and 4 deletions

View File

@@ -12,7 +12,6 @@ trap {
$ErrorActionPreference = 'Stop'
$scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
$repoRoot = Split-Path -Parent $scriptDir
$containerName = if ($env:CONTAINER_NAME) { $env:CONTAINER_NAME } else { 'takeout.api.tenant' }
$dockerNetwork = if ($env:DOCKER_NETWORK) { $env:DOCKER_NETWORK } else { 'web_apps' }
@@ -23,6 +22,42 @@ $nugetVolume = if ($env:NUGET_VOLUME) { $env:NUGET_VOLUME } else { 'takeout-nuge
$projectPath = if ($env:PROJECT_PATH) { $env:PROJECT_PATH } else { 'src/Api/TakeoutSaaS.TenantApi/TakeoutSaaS.TenantApi.csproj' }
$environment = if ($env:ASPNETCORE_ENVIRONMENT) { $env:ASPNETCORE_ENVIRONMENT } else { 'Development' }
function Resolve-RepoRoot {
param(
[Parameter(Mandatory = $true)]
[string]$startDir,
[Parameter(Mandatory = $true)]
[string]$projectPath
)
$normalizedProjectPath = $projectPath -replace '/', [System.IO.Path]::DirectorySeparatorChar
$current = $startDir
for ($i = 0; $i -lt 6; $i++) {
if (Test-Path (Join-Path $current $normalizedProjectPath)) {
return $current
}
if (Test-Path (Join-Path $current 'TakeoutSaaS.sln')) {
return $current
}
$parent = Split-Path -Parent $current
if ([string]::IsNullOrWhiteSpace($parent) -or $parent -eq $current) {
break
}
$current = $parent
}
return $null
}
$repoRoot = Resolve-RepoRoot -startDir $scriptDir -projectPath $projectPath
if (-not $repoRoot) {
throw "未找到仓库根目录(缺少 $projectPath 或 TakeoutSaaS.sln请在 TenantApi 仓库中运行该脚本。"
}
Write-Host "工作目录:$repoRoot"
Write-Host "使用 SDK 镜像:$sdkImage"
Write-Host "容器:$containerName 端口:$hostPort`:$containerPort 网络:$dockerNetwork"
@@ -70,4 +105,3 @@ docker run -d --name $containerName @runArgs `
Write-Host "已启动。查看日志docker logs -f $containerName"
Write-Host "Swaggerhttp://localhost:$hostPort/api/docs (兼容入口 /swagger"