Welcome to the Inedo Forums! Check out the Forums Guide for help getting started.
If you are experiencing any issues with the forum software, please visit the Contact Form on our website and let us know!
Image-based Services (Containerized Builds) failing on "Build .NET Project"
-
I enabled Image-based Services and had it install the default images. BuildMaster is installed on a windows server that is also running DockerDesktop so the docker.exe version command shows 29.4.1. Now I found an article on your site that didn't mention DockerDesktop but did talk about other options and said that depending what you were using depended on whether it supported Linux or not. I know my Docker does support Linux as that is what I'm using on the images running on it but when I try to kick of the build it gives me an error as if it thinks it is running on Linux but is actually on Windows. Below is the log from the build.
Screenshot showing it is set to run in a container:

Screenshot showing Image-based Services are enabled and the registered services:

Log from Build:
Using LocalAgent agent on localhost Updating local repository for http://bitbucket1.sscs.ad:7990/scm/cdb/transaction.api.git... Git backend: libgit2sharp Repository path is C:\ProgramData\BuildMaster\Temp\Service\.gitrepos\bitbucket1.sscs.ad$7990$scm$cdb$transaction.api.git Fetching from origin (http://bitbucket1.sscs.ad:7990/scm/cdb/transaction.api.git)... Fetch completed in 00:00:00.1317612. Exporting files to C:\ProgramData\BuildMaster\Temp\Service\_E327\... Checking out code from de476603d1d6185ddac1708c5de9cda5a3fd8c68 to C:\ProgramData\BuildMaster\Temp\Service\_E327\... Lookup succeeded; found commit de476603d1d6185ddac1708c5de9cda5a3fd8c68. Looking for submodules... No submodules in repository. Using LocalAgent agent on localhost Searching for files matching **.csproj in C:\ProgramData\BuildMaster\Temp\Service\_E327... Found 11 matching files. Reading C:\ProgramData\BuildMaster\Temp\Service\_E327\SSCS.Mapping.Generator\SSCS.Mapping.Generator.csproj... C:\ProgramData\BuildMaster\Temp\Service\_E327\SSCS.Mapping.Generator\SSCS.Mapping.Generator.csproj loaded. Setting Version in C:\ProgramData\BuildMaster\Temp\Service\_E327\SSCS.Mapping.Generator\SSCS.Mapping.Generator.csproj to 1.3.1... Writing C:\ProgramData\BuildMaster\Temp\Service\_E327\SSCS.Mapping.Generator\SSCS.Mapping.Generator.csproj... C:\ProgramData\BuildMaster\Temp\Service\_E327\SSCS.Mapping.Generator\SSCS.Mapping.Generator.csproj saved. Reading C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.API\Transaction.API.csproj... C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.API\Transaction.API.csproj loaded. Setting Version in C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.API\Transaction.API.csproj to 1.3.1... Writing C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.API\Transaction.API.csproj... C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.API\Transaction.API.csproj saved. Reading C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Application\Transaction.Application.csproj... C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Application\Transaction.Application.csproj loaded. Setting Version in C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Application\Transaction.Application.csproj to 1.3.1... Writing C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Application\Transaction.Application.csproj... C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Application\Transaction.Application.csproj saved. Reading C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Application.DTO\Transaction.Application.DTO.csproj... C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Application.DTO\Transaction.Application.DTO.csproj loaded. Setting Version in C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Application.DTO\Transaction.Application.DTO.csproj to 1.3.1... Writing C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Application.DTO\Transaction.Application.DTO.csproj... C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Application.DTO\Transaction.Application.DTO.csproj saved. Reading C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.CdbWin.Client\Transaction.CdbWin.Client.csproj... C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.CdbWin.Client\Transaction.CdbWin.Client.csproj loaded. Setting Version in C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.CdbWin.Client\Transaction.CdbWin.Client.csproj to 1.3.1... Writing C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.CdbWin.Client\Transaction.CdbWin.Client.csproj... C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.CdbWin.Client\Transaction.CdbWin.Client.csproj saved. Reading C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Client.Shared\Transaction.Client.Shared.csproj... C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Client.Shared\Transaction.Client.Shared.csproj loaded. Setting Version in C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Client.Shared\Transaction.Client.Shared.csproj to 1.3.1... Writing C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Client.Shared\Transaction.Client.Shared.csproj... C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Client.Shared\Transaction.Client.Shared.csproj saved. Reading C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Domain\Transaction.Domain.csproj... C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Domain\Transaction.Domain.csproj loaded. Setting Version in C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Domain\Transaction.Domain.csproj to 1.3.1... Writing C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Domain\Transaction.Domain.csproj... C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Domain\Transaction.Domain.csproj saved. Reading C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Persistence\Transaction.Persistence.csproj... C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Persistence\Transaction.Persistence.csproj loaded. Setting Version in C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Persistence\Transaction.Persistence.csproj to 1.3.1... Writing C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Persistence\Transaction.Persistence.csproj... C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Persistence\Transaction.Persistence.csproj saved. Reading C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Tests.Common\Transaction.Tests.Common.csproj... C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Tests.Common\Transaction.Tests.Common.csproj loaded. Setting Version in C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Tests.Common\Transaction.Tests.Common.csproj to 1.3.1... Writing C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Tests.Common\Transaction.Tests.Common.csproj... C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Tests.Common\Transaction.Tests.Common.csproj saved. Reading C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Tests.Integration\Transaction.Tests.Integration.csproj... C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Tests.Integration\Transaction.Tests.Integration.csproj loaded. Setting Version in C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Tests.Integration\Transaction.Tests.Integration.csproj to 1.3.1... Writing C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Tests.Integration\Transaction.Tests.Integration.csproj... C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Tests.Integration\Transaction.Tests.Integration.csproj saved. Reading C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Tests.Unit\Transaction.Tests.Unit.csproj... C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Tests.Unit\Transaction.Tests.Unit.csproj loaded. Setting Version in C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Tests.Unit\Transaction.Tests.Unit.csproj to 1.3.1... Writing C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Tests.Unit\Transaction.Tests.Unit.csproj... C:\ProgramData\BuildMaster\Temp\Service\_E327\Transaction.Tests.Unit\Transaction.Tests.Unit.csproj saved. Performing containerized build using ".NET 6" image based service. Using LocalAgent agent on localhost Ensuring working directory C:\ProgramData\BuildMaster\Temp\Service\_E327 exists... Executing dotnet publish "/var/buildmaster-ibs/Transaction.API/Transaction.API.csproj" --configuration "Release" --output "/var/buildmaster-ibs/publish" "-p:ContinuousIntegrationBuild=true" "--no-self-contained" ... Unhandled exception: System.ComponentModel.Win32Exception (2): An error occurred trying to start process 'id' with working directory 'C:\Windows\system32'. The system cannot find the file specified. at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo) at System.Diagnostics.Process.Start() at Inedo.Agents.LocalProcess.Start() at Inedo.Agents.LocalProcess.Inedo.Agents.IRemoteProcess.StartAsync(CancellationToken cancellationToken) at Inedo.BuildMaster.Windows.ServiceApplication.Executions.PlanExecuter.AgentDockerHost.GetCurrentUserIdAsync(IRemoteProcessExecuter exec, ActiveNamedScope log, CancellationToken cancellationToken) at Inedo.BuildMaster.Windows.ServiceApplication.Executions.PlanExecuter.AgentDockerHost.ExecuteInContainerAsync(ContainerStartInfo containerStartInfo, CancellationToken cancellationToken) at Inedo.Extensions.DotNet.Operations.DotNet.DotNetBuildOrPublishOperation.<>c__DisplayClass63_0.<<ExecuteAsync>g__execAsync|2>d.MoveNext() in C:\Users\builds\AppData\Local\Temp\InedoAgent\BuildMaster\192.168.44.60\Temp\_E613379\Src\DotNet\InedoExtension\Operations\DotNet\DotNetBuildOrPublishOperation.cs:line 420 --- End of stack trace from previous location --- at Inedo.Extensions.DotNet.Operations.DotNet.DotNetBuildOrPublishOperation.ExecuteAsync(IOperationExecutionContext context) in C:\Users\builds\AppData\Local\Temp\InedoAgent\BuildMaster\192.168.44.60\Temp\_E613379\Src\DotNet\InedoExtension\Operations\DotNet\DotNetBuildOrPublishOperation.cs:line 332 at Inedo.BuildMaster.Windows.ServiceApplication.Executions.PlanExecuter.OtterScriptExecuter.Inedo.ExecutionEngine.Executer.IExecutionHostEnvironment.ExecuteActionAsync(ActionStatement actionStatement, IExecuterContext context) Cleaning up... Deleting C:\ProgramData\BuildMaster\Temp\Service\_E327 on localhost... C:\ProgramData\BuildMaster\Temp\Service\_E327 on localhost deleted. Cleanup complete.
-
Based on the error message, it looks like you've got Docker Desktop configured to use Windows-based containers, not Linux. I'm not sure if this can work on Docker Desktop; it's just a not a stack anyone considers/supports for use cases like this.
The underlying error appears to becoming from the
dotnettooling. Though it's hard to say without troubleshooting further. Basically, something in the stack is calling the Linux toolid, which isn't going to work on a Windows container.If you're evaluating/testing, I would just use a virtual machine and pretend it's a remote server or something to that effect.
Thanks,
Steve