In a powershell module there is a class with the following method (here simplified). It simply calls docker to automatically build an image.
Everything works and the image is correctly built. What I cannot understand is why the logs from docker are not printed in the console (as they do if I call the same docker command directly instead of inside a powershell module).
[void] BuildImage() {
$imageId = ...
docker build -f ../Dockerfile . -t $imageId
}
>Solution :
You have a void method, it produces no output. If you want to send output to the success stream (stdout), then change the return type to [string[]] and use return:
[string[]] BuildImage() {
$imageId = ...
return docker build -f ../Dockerfile . -t $imageId
}
If instead you’re interested in sending the output to the information stream, you can still have your void method but pipe the output from your docker command to Write-Host:
[void] BuildImage() {
$imageId = ...
docker build -f ../Dockerfile . -t $imageId 2>&1 |
Write-Host
}