Voglio configurare un contenitore Docker per supportare le build del codice base interamente scritto in C++ e l'applicazione generata viene eseguita solo su Windows.Compilatore Microsoft nella finestra mobile
Per questo scopo, ho bisogno di configurare un contenitore che replica il nostro attuale ambiente di costruzione per supportare le build.
Ho bisogno di creare un qualcosa di Dockerfile come qui di seguito per costruire un tale contenitore:
perche il seguente come una specie di pseudo-codice Dockerfile (ignorare il apt-get e prendere in considerazione qualsiasi altra utilità in Windows per installare gli strumenti da riga di comando):
FROM: Windows10 // A base windows kernel
RUN apt-get install -y VisualStudio // Installing the Visual Studio for compilation of C++ files
RUN apt-get install -y cygwin // Since I am using some cygwin utlities in build process
RUN apt-get install -y SigningTool // A tool I need to sign the exe
RUN apt-get install -y CompressionTool // A tool I need to compress the exe
RUN apt-get install -y BuildSystem // Custom in-house build system to generate the builds of the source code
CMD ['BuildSystem debug']
Nota: Abbiamo un sistema personalizzato accumulo (e non usando GNU Make) nella nostra organizzazione per eseguire le generazioni. debug è l'obiettivo fornito al sistema di build, dal momento che voglio creare un eseguibile di debug.
mio dubita sono:
Come posso installare un compilatore VisualStudio (o qualsiasi altro compilatore che gira su Windows)
Come faccio ospitare il SigningTool, CompressionTool e altri eseguibili (su Registro sicuro Docker, se è possibile per ospitare gli eseguibili su DTR)
Come faccio a prendermi cura della licenza degli strumenti di cui sopra (compilatore, signingtool, compressiontool tutti richiedono licenze per l'esecuzione).
Quanto sopra funziona perfettamente nella nostra organizzazione. Ma il processo di configurazione di una macchina (l'installazione e tutti gli strumenti sopra descritti richiedono molto tempo e impegno). Quindi, voglio creare un'immagine Docker che possa essere distribuita su una macchina nuda, che avrà l'intero ambiente di installazione configurato e funzionante in molto meno tempo.
Uno scopo più importante di ciò è adottare la metodologia Continuous Delivery.
Si prega di fornire gli input sullo stesso (prova a considerare tutti i dubbi).