Initial SQL-only 1C adapter baseline
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
param(
|
||||
[Parameter(Mandatory = $true)]
|
||||
[ValidateSet("translation", "audio", "video", "image")]
|
||||
[string]$Plugin,
|
||||
[string]$DockerHost = "ssh://docker-gpu",
|
||||
[string]$SshTarget = "docker-gpu",
|
||||
[string]$RemoteArchive = "C:\ProgramData\LLM\model-chat-app.zip",
|
||||
[string]$RemoteAppDir = "Z:\LLM\model-chat-app",
|
||||
[switch]$ConfigOnly,
|
||||
[switch]$Pull,
|
||||
[switch]$NoSyncApp,
|
||||
[switch]$NoFirewall
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
. (Join-Path $PSScriptRoot "app_archive.ps1")
|
||||
|
||||
$composeFile = "core/deploy/docker-gpu/transformers/$Plugin.compose.yaml"
|
||||
$envFile = "core/deploy/docker-gpu/transformers/$Plugin.env.example"
|
||||
$ports = @{
|
||||
translation = 8010
|
||||
audio = 8020
|
||||
video = 8030
|
||||
image = 8040
|
||||
}
|
||||
|
||||
if (-not (Test-Path -LiteralPath $composeFile)) {
|
||||
throw "Compose file not found: $composeFile"
|
||||
}
|
||||
|
||||
if (-not (Test-Path -LiteralPath $envFile)) {
|
||||
throw "Env file not found: $envFile"
|
||||
}
|
||||
|
||||
$baseArgs = @(
|
||||
"--host", $DockerHost,
|
||||
"compose",
|
||||
"--env-file", $envFile,
|
||||
"-f", $composeFile
|
||||
)
|
||||
|
||||
docker @baseArgs config | Out-Host
|
||||
if ($ConfigOnly) {
|
||||
exit 0
|
||||
}
|
||||
|
||||
if ($Pull) {
|
||||
docker @baseArgs pull
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
exit $LASTEXITCODE
|
||||
}
|
||||
}
|
||||
|
||||
if (-not $NoSyncApp) {
|
||||
Sync-AppDirectory -SshTarget $SshTarget -RemoteArchive $RemoteArchive -RemoteAppDir $RemoteAppDir
|
||||
}
|
||||
|
||||
docker @baseArgs up -d
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
exit $LASTEXITCODE
|
||||
}
|
||||
|
||||
if (-not $NoFirewall) {
|
||||
$port = $ports[$Plugin]
|
||||
$ruleName = "LLM Transformers $Plugin $port"
|
||||
$firewallScript = @"
|
||||
if (-not (Get-NetFirewallRule -DisplayName '$ruleName' -ErrorAction SilentlyContinue)) {
|
||||
New-NetFirewallRule -DisplayName '$ruleName' -Direction Inbound -Action Allow -Protocol TCP -LocalPort $port -Profile Any | Out-Null
|
||||
}
|
||||
"@
|
||||
Invoke-RemotePowerShell -SshTarget $SshTarget -Script $firewallScript
|
||||
}
|
||||
|
||||
exit $LASTEXITCODE
|
||||
Reference in New Issue
Block a user