Est-il possible d’installer Visual Studio dans un conteneur Windows

Est-il possible d’installer une version de Visual Studio dans un conteneur Windows sur un serveur Windows?

La motivation est d’utiliser des conteneurs Windows pour créer des logiciels dans des systèmes d’continuous integration, afin que l’environnement de génération soit standardisé.

Visual Studio ne semble pas être officiellement pris en charge par Core Server, mais je suis d’accord pour dire que ce serait vraiment bien de pouvoir le faire. Essayons:

FROM microsoft/windowsservercore:10.0.14393.1715 SHELL ["powershell"] RUN Invoke-WebRequest "https://aka.ms/vs/15/release/vs_community.exe" -OutFile "$env:TEMP\vs_community.exe" -UseBasicParsing RUN & "$env:TEMP\vs_community.exe" --add Microsoft.VisualStudio.Workload.NetWeb --quiet --wait --norestart --noUpdateInstaller | Out-Default RUN & 'C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/MSBuild/15.0/Bin/MSBuild.exe' /version CMD ["powershell"] 

(Je pousse cette image dans lukaslansky / visualstudio-netwebworkload , utilisez-la avec précaution.)

Le résultat de la construction est:

 [...] Microsoft (R) Build Engine version 15.3.409.57025 for .NET Framework Copyright (C) Microsoft Corporation. All rights reserved. 

Cela semble donc fonctionner! Vous devez jouer avec ces arguments --add installator pour spécifier les composants dont vous avez besoin précisément pour votre génération, ils correspondent aux charges de travail et aux composants que vous voyez dans l’interface graphique. Voir la documentation.

Les conteneurs Windows n’incluent pas actuellement d’applications GUI. La limitation est sur Microsoft, pas sur Docker.

Par exemple, essayez quelque chose de simple, comme exécuter le Bloc-notes (dans le conteneur Windows Server Core). Le processus est lancé mais aucune interface graphique n’apparaît.

Bloc-notes lancé, mais aucune interface graphique n'apparaît

Il est logique d’exécuter IDE dans un conteneur si vous souhaitez faciliter la configuration des environnements de travail pour les développeurs.

Vous pouvez exécuter Visual Studio Code dans un conteneur ( https://grigio.org/visual_studio_code_docker/ ) ou Eclipse ( https://rgrunber.wordpress.com/2016/01/26/eclipse-inside-a-docker-container/ ). Visual Studio devrait fonctionner assez similaire

Juste pour mémoire, MS ne prévoit pas de prise en charge VS à l’intérieur des conteneurs, la meilleure alternative est MsBuild. Il y a quelques mois était possible mais avec la dernière version de VS n’est pas possible. Source: vsts-agents

Votre meilleur pari à ce stade est d’utiliser les outils de création Visual Studio .