This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$image = "hyness/spring-cloud-config-server" | |
$name = "river-cloud-config" | |
$attempts = 0 | |
$startSuccess = $false | |
$maxAttempts = 3 | |
$configPath = (Get-Item (Join-Path $PSScriptRoot "../../river-flow-config/local")).FullName.Replace("\", "/") | |
do { | |
docker ps -a -f name=$name -q | ForEach-Object { | |
"Stopping $name container" | |
docker stop $_ | Out-Null | |
docker rm $_ | Out-Null | |
} | |
# https://hub.docker.com/r/hyness/spring-cloud-config-server/ | |
$v = "$($configPath):/config" | |
"Starting $image container using config path $configPath" | |
docker run -d -p 8888:8888 --rm --name $name ` | |
-v $v ` | |
-e SPRING_PROFILES_ACTIVE=native ` | |
-e SPRING_CLOUD_CONFIG_SERVER_ACCEPT-EMPTY=false ` | |
$image | |
if ($?) { | |
$startSuccess = $true | |
break; | |
} | |
$attempts = $attempts + 1 | |
"Waiting on $image docker run success, attempts $attempts of $maxAttempts" | |
Start-Sleep 1 | |
} while ($attempts -lt $maxAttempts) | |
if (!$startSuccess) { | |
throw "Failed to start $image container." | |
} | |
$configServerTestUrl = "http://localhost:8888/river-flow-processor/local" | |
"Checking Cloud Config status. Test url: $configServerTestUrl" | |
$attempts = 0 | |
$maxAttempts = 10 | |
do { | |
Start-Sleep ($attempts + 3) | |
$status = -1 | |
try { | |
$status = Invoke-WebRequest $configServerTestUrl | ForEach-Object {$_.StatusCode} | |
} | |
catch { | |
Write-Warning "$($_.Exception.Message)" | |
} | |
if ($status -eq 200) { | |
"$image started. Launching $configServerTestUrl" | |
Start-Process $configServerTestUrl -WindowStyle Minimized | |
break; | |
} | |
$attempts = $attempts + 1 | |
"$image not fully started. Attempts $attempts of $maxAttempts. Waiting..." | |
} while ($attempts -lt $maxAttempts) | |
# if you get to this point and it can't seem to find the app, might need to reset docker drive creds if pwd changed | |
if ($attempts -eq $maxAttempts) { | |
Write-Warning "Starting $image appeared to fail" | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment