Ich möchte einen Docker-Container einrichten, der Builds der vollständig in C ++ geschriebenen Codebasis unterstützt, und die generierte Anwendung wird nur unter Windows ausgeführt.
Zu diesem Zweck muss ich einen Container einrichten, der unsere aktuelle Build-Umgebung repliziert, um die Builds zu unterstützen.
Ich muss eine Dockerfile wie folgt erstellen, um einen solchen Container zu erstellen:
Bitte beachten Sie Folgendes als eine Art Pseudo-Code-Dockerfile (ignorieren Sie apt-get und betrachten Sie ein anderes Dienstprogramm in Windows, um Tools von der Befehlszeile aus zu installieren):
%Vor%Hinweis: Wir haben ein benutzerdefiniertes Build-System (und nicht GNU Make verwenden) in unserer Organisation, um die Builds durchzuführen. debug ist das Ziel, das dem Build-System zur Verfügung gestellt wird, da ich eine Debug-Programmdatei erstellen möchte.
Meine Zweifel sind:
Wie installiere ich einen VisualStudio-Compiler (oder einen anderen Compiler, der unter Windows läuft)
Wie kann ich das SigningTool, das CompressionTool und andere ausführbare Dateien auf hosten (auf der Docker Trusted Registry ; die ausführbaren Dateien auf DTR)
Wie kümmere ich mich um die Lizenzierung der oben genannten Tools (Compiler, signingtool, compressiontool erfordern alle Lizenzen zum Ausführen).
Das oben genannte funktioniert in unserer Organisation absolut einwandfrei. Aber der Prozess der Einrichtung einer Maschine (Installation und alle der oben genannten Tools erfordert viel Zeit und Mühe). Daher möchte ich ein Docker-Image erstellen, das auf einer nackten Maschine bereitgestellt werden kann. Dadurch wird die gesamte Build-Umgebung in kürzester Zeit eingerichtet und ausgeführt.
Ein wichtigerer Zweck ist die Übernahme der Methode Continuous Delivery .
Bitte geben Sie Ihre Eingaben an (versuchen Sie, alle Zweifel zu berücksichtigen).
Ich nehme an, Sie können bereits Windows-Container ausführen, z. docker run -it microsoft/windowsservercore
Hier ist meine Dockerfile , um Visual C ++ Build Tools 2015 im Docker-Container mit Chocolatey zu installieren:
%Vor%Die Verwendung von Choco ist einfacher, aber Sie können dasselbe Ergebnis erzielen, wenn Sie natives Web-Installationsprogramm herunterladen und es im stillen Modus ausführen, zum Beispiel:
%Vor%Nur um klar zu sein, würden Sie docker für Windows dafür benötigen.
Und ich spreche nicht von Docker für Mac und Windows Beta , die einen Linux (Alpine) Host auf einer Hyper-V-VM unter Windows ausführen würde: das würde kein Windows-Image ausführen, nur Linux-Images.
Ich spreche über Docker für Windows (vorausgesetzt, Ihr Windows10 verfügt über die neueste Hyper-V-Funktion ). Bis vor kurzem war das nur auf einem Windows Server 2016 TP4 möglich.
Nur als Antwort auf Ihren ersten Punkt: Es gibt hier ein Dokument, das ich als Ausgangspunkt für ein Docker-Bild verwendet habe, um eine Windows C ++ - Anwendung zu kompilieren: Installieren Sie Build Tools in einem Container
Ich verwende Docker unter Windows Server 2016 und kompiliere eine ältere Anwendung, die auf XP abzielt.
Mein eventuelles Dockerfile
sah so aus:
Tags und Links c++ windows visual-studio docker dockerfile