# TeamCity Agent (Windows-containers) # Default arguments ARG teamcityAgentImage='jetbrains/teamcity-agent:2021.2.3-windowsservercore-2004' # dotnet, git, java, ps FROM ${teamcityAgentImage} USER ContainerAdministrator ### Install Chocolatey RUN \ # Download powershell script that installs chocolatey powershell -NoProfile -ExecutionPolicy Bypass \ -Command "$env:ChocolateyUseWindowsCompression='false'; \ iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" ### Configure Windows RUN powershell add-windowsfeature web-asp-net45 ### Install VS2019 build tools RUN \ # Download the Build Tools bootstrapper. Invoke-WebRequest -uri https://aka.ms/vs/16/release/vs_buildtools.exe -OutFile vs_buildtools_2019.exe \ \ ; (powershell Start-Process \ -FilePath "vs_buildtools_2019.exe" \ -Wait \ -PassThru \ -ArgumentList 'modify \ --passive \ --wait \ --norestart \ --nocache \ --add Microsoft.VisualStudio.Workload.AzureBuildTools \ --add Microsoft.VisualStudio.Workload.ManagedDesktopBuildTools \ --add Microsoft.VisualStudio.Workload.MSBuildTools \ --add Microsoft.VisualStudio.Workload.NetCoreBuildTools \ --add Microsoft.VisualStudio.Workload.NodeBuildTools \ --add Microsoft.VisualStudio.Workload.WebBuildTools \ --add Microsoft.VisualStudio.Workload.XamarinBuildTools') \ ; IF ($LASTEXITCODE -eq 3010) { EXIT 0 } \ \ # Cleanup ; Remove-Item vs_buildtools_2019.exe ### Install VS2017 build tools RUN \ # Download the Build Tools bootstrapper. Invoke-WebRequest -uri https://aka.ms/vs/15/release/vs_buildtools.exe -OutFile vs_buildtools_2017.exe \ \ ; (powershell Start-Process \ -FilePath "vs_buildtools_2017.exe" \ -Wait \ -PassThru \ -ArgumentList 'modify \ --passive \ --wait \ --norestart \ --nocache \ --add Microsoft.VisualStudio.Workload.AzureBuildTools \ --add Microsoft.VisualStudio.Workload.ManagedDesktopBuildTools \ --add Microsoft.VisualStudio.Workload.MSBuildTools \ --add Microsoft.VisualStudio.Workload.NetCoreBuildTools \ --add Microsoft.VisualStudio.Workload.NodeBuildTools \ --add Microsoft.VisualStudio.Workload.WebBuildTools \ --add Microsoft.VisualStudio.Workload.XamarinBuildTools') \ ; IF ($LASTEXITCODE -eq 3010) { EXIT 0 } \ \ # Cleanup ; Remove-Item vs_buildtools_2017.exe