diff --git a/script/startVM.ps1 b/script/startVM.ps1 new file mode 100644 index 00000000..63c013cb --- /dev/null +++ b/script/startVM.ps1 @@ -0,0 +1,58 @@ +$vmrun = "C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe" +$vmx = "E:\vm\coal-dev-debian\coal-dev-debian.vmx" +$vmuser = "root" +$vmpass = "abc@123" + +$composeFile = "/root/coal-env/dev/docker-compose.yaml" + +& $vmrun -T ws start $vmx nogui + +$count = 0 +$vmStartTime = Get-Date +while ($true) +{ + + $count++ + + if ($count -gt 10) + { + Write-Host "Timeout" + Throw "等待虚拟机IP超时 $count 次 $vmx" + } + + + $ip = & $vmrun -T ws getGuestIPAddress $vmx + + if ($?) + { + Write-Host "IP: $ip" + break + } + else + { + Write-Host "Waiting for IP..." + Start-Sleep -Seconds 5 + } + +} + +$vmEndTime = Get-Date + +$vmStartSeconds = [math]::Round(($vmEndTime - $vmStartTime).TotalSeconds, 2) + +Write-Host "VM start time: $vmStartSeconds seconds" + +Write-Host "start docker compose in vm...." + + +& $vmrun -gu $vmuser -gp $vmpass -T ws runProgramInGuest $vmx /usr/bin/docker compose -f $composeFile up -d + + +if ($?) +{ + Write-Host "docker compose started" +} +else +{ + Write-Host "docker compose start failed" +} \ No newline at end of file