web-dev-qa-db-fra.com

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

Est-il possible d'installer n'importe quelle 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 à intégration continue, afin que l'environnement de construction soit normalisé.

45
Jifeng Zhang

Visual Studio semble ne pas être officiellement pris en charge sur Core Server, mais je conviens que ce serait vraiment agréable 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"]

(J'insère cette image dans lukaslansky/visualstudio-netwebworkload , à utiliser avec prudence.)

La sortie de la construction est:

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

Donc, cela semble fonctionner! Vous devez utiliser ces arguments --add installator pour spécifier les composants dont vous avez besoin pour votre construction, ils correspondent aux charges de travail et aux composants que vous voyez dans l'interface graphique. Voir la documentation.

16
Lukáš Lánský

Il est judicieux d’exécuter IDE dans un conteneur si vous souhaitez faciliter la configuration des environnements de travail des 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 

4
Alex Lungu

Les conteneurs Windows n'incluent pas actuellement les applications graphiques. La limitation est sur Microsoft, pas sur Docker.

Par exemple, essayez quelque chose de simple, comme l'exécution du bloc-notes (dans le conteneur Windows Server Core). Le processus est lancé mais aucune interface graphique ne s'affiche.

 Notepad launched, but no GUI shows up

4
xav

Pour mémoire, MS n’envisage pas de prendre en charge les VS à l’intérieur des conteneurs. La meilleure alternative que vous puissiez utiliser est MsBuild. Il y a quelques mois, c'était possible, mais avec la dernière version de VS, ce n'est pas possible. Source: vsts-agents

1
Judavi

Un moyen d'installer Visual Build Corporation dans un conteneur Windows pourrait être d'utiliser chocolatey package visualstudio2017buildtools .

Démarrer Dockerfile avec quelque chose comme:

FROM Microsoft/dotnet-framework
Shell ["powershell"]
RUN Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
RUN choco install -y --no-progress visualstudio2017buildtools
RUN choco install -y --no-progress visualstudio2017-workload-vctools
Shell ["cmd", "/S", "/C"]
RUN call C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvars64.bat
0
mpromonet

Votre meilleur pari à ce stade est d’utiliser Visual Studio Build Tools

0
carlowahlstedt