We recently added some machines running windows server 2019, and the latest windows updates appear to have broken the way calamari logs in to private docker image registries.
From what I’ve been able to figure out, it seems like the docker command is writing to stderr, which is now causing powershell to throw an exception, and the deploy step fails.
In attempt to reproduce this in the simplest form, I’ve run the following script on 2 different windows server 2019 machines, one with a slightly newer version of powershell (and I don’t believe there are any other significant differences). You can see the result in the attached image.
(Get-CimInstance Win32_OperatingSystem).version; $PSVersionTable.PSVersion; echo "my_secret" | docker login --username octo_user --password-stdin ***.azurecr.io
This problem is much worse with scripts that attempt to run any docker-compose commands, since it writes to stderr even for saying that services are up to date. I’ve been having a hard time trying to find a good work around for this issue, beyond running docker commands via a segregated command block with the error action set to silently continue (which of course will hide any actual errors that might happen). Even attempting to pipe stderr to stdout doesn’t work because of its own unrelated quirk.