Primarily I have a docker container with MSBuild tools installed and the Vsts agent. Building the docker container takes a fair amount of time because of the visual studio installer. (45 minutes on local machine)
In Azure DevOps I’ve created a pipeline that uses this image to start, build and deploy our applications. After finishing the build it should stop the container till next request.
I thought that using ACI would make my current local build server obsolete, because i find it a little bit stupid to have a full blown windows server to run docker on it with the containers also running a full blown windows server.
Either i missed something or running msbuild and the agent on the physical server defeats the purpose of the whole docker solution.
On the other side, removing this physical server and replace it by ACI should do the trick. Starting and stopping this container with Azure Cli can be handled by Azure Devops. The only issue here is that the container instance is stateless, which has a nasty side effect of pulling the image every time the instance is started which takes an half hour to complete. Keep the instance running is a no-go because of the costs.
If only the pulled image is cached and used on every restart, this would be the ultimate solution but sadly it’s not.
Did i missed something in the preliminary investigation or did i made some wrong assumptions?