2025-10-10 16:07:00 +08:00

58 lines
1.7 KiB
PowerShell

#!/usr/bin/env pwsh
$global:DOCKER_IMAGE_LOWEST_VERSION = "1.0"
$global:DOCKER_IMAGE_VERSION = ""
$global:DOCKER_IMAGE = "bekencorp/armino-idk"
function Check-DockerInstalled {
$dockerExecutablePath = Get-Command docker -ErrorAction SilentlyContinue
if (!($dockerExecutablePath)) {
Write-Host "You don't have docker installed in your path.`nPlease find our quick start to build using docker client."
exit 1
}
}
function Check-DockerRunning {
try {
$dockerInfo = docker ps
if (!($?)) {
Write-Host "Docker not started, please read the user manual to start Docker."
exit 1
}
} catch {
Write-Host "docker running error"
exit 1
}
}
function Check-ImageExist {
$images_info = docker images --format "{{.Repository}} {{.Tag}}" | Select-String $DOCKER_IMAGE | ForEach-Object { $_.Line.Split(" ")[1] }
if (-not $images_info) {
Write-Host "Docker build image does not exist, please read the user manual to install image."
exit 1
}
$max_version = $images_info -split " " | Measure-Object -Maximum | Select-Object -ExpandProperty Maximum
if ([double]$max_version -ge [double]$DOCKER_IMAGE_LOWEST_VERSION) {
$global:DOCKER_IMAGE_VERSION = $max_version
} else {
Write-Host "Docker image version is outdated. The minimum version is $DOCKER_IMAGE_LOWEST_VERSION"
exit 1
}
}
function Run-DockerBuild {
$args_array = $args -split " "
docker run --rm -v ${PWD}:/armino -w /armino ${DOCKER_IMAGE}:${DOCKER_IMAGE_VERSION} $args_array
}
function main {
Check-DockerInstalled
Check-DockerRunning
Check-ImageExist
Run-DockerBuild "$args"
}
main "$args"