Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   Continuous Integration Prozess mit Docker & Rad Studio (https://www.delphipraxis.net/201609-continuous-integration-prozess-mit-docker-rad-studio.html)

flashpixx 8. Aug 2019 07:46

AW: Continuous Integration Prozess mit Docker & Rad Studio
 
Zitat:

Zitat von Rollo62 (Beitrag 1439960)
Zitat:

Zitat von freimatz (Beitrag 1439956)
[finde ich z.B. https://yeiei.net/en/debugging-delph...ker-container/. Es scheint wohl schon jemand geschafft zu haben.

Das sieht für mich so aus als würde da nur der PAServer (als Remote-Debugger) im Docker Laufen, nicht RadStudio.

Ja ist es auch, das ist für das Remote-Debugging. Ich möchte aber in dem Docker-Container compilieren, d.h. mein Git-Repository clonen und die dann die Projektdatei übersetzen (ohne UI)

Aviator 8. Aug 2019 08:42

AW: Continuous Integration Prozess mit Docker & Rad Studio
 
Unter welchem Betriebssystem läuft denn deine Docker Instanz? Ich gehe mal davon aus, dass du das unter Windows ausprobiert hast. Zusätzlich müssen die Container wohl als Windows Container laufen. Was ich so gelesen habe, hat die neueste Version von Docker for Windows auch einige Verbesserungen erhalten um mehr Möglichkeiten zu haben Container laufen zu lassen.

TiGü 8. Aug 2019 09:31

AW: Continuous Integration Prozess mit Docker & Rad Studio
 
Zitat:

Zitat von flashpixx (Beitrag 1440135)
Zitat:

Zitat von TiGü (Beitrag 1439946)
Brauchst du überhaupt eine komplette Installation von Delphi?
Reicht es nicht, wenn du dir den Compiler (dcc32.exe und/oder dcc64.exe) in den Docker-Container holst und dann ganz klassisch per MSBUILD die Delpi-Projekte baust?
Sicher gibt es doch die ein oder andere Abhängigkeit, die man mit knobeln auflösen muss, aber nichts was nicht ggf. lösbar wäre.

Ja genau das hatte ich gedacht, also habe ich das bin bzw bin64 Verzeichnis direkt mit COPY in den Container kopiert, wenn ich dann aber versuche irgendeine Exe wie dcc32 auszuführen, passiert gar nichts. Es kommt keine Fehlermeldung aber das Programm funktioniert auch nicht

Schau doch mal, ob der dcc32.exe alle Abhänigkeiten findet:

C:\WINDOWS\System32\ADVAPI32.DLL.
C:\WINDOWS\System32\bcryptPrimitives.dll.
C:\WINDOWS\System32\combase.dll.
C:\WINDOWS\System32\CRYPT32.dll.
C:\WINDOWS\System32\CRYPTBASE.dll.
C:\WINDOWS\System32\GDI32.dll.
C:\WINDOWS\System32\gdi32full.dll.
C:\WINDOWS\System32\IMM32.DLL.
C:\WINDOWS\System32\KERNEL32.DLL.
C:\WINDOWS\System32\KERNELBASE.dll.
C:\WINDOWS\System32\MSASN1.dll.
C:\WINDOWS\System32\msvcp_win.dll.
C:\WINDOWS\System32\msvcrt.dll.
C:\WINDOWS\SYSTEM32\ntdll.dll.
C:\WINDOWS\System32\OLE32.DLL.
C:\WINDOWS\System32\RPCRT4.dll.
C:\WINDOWS\System32\sechost.dll.
C:\WINDOWS\System32\SHLWAPI.dll.
C:\WINDOWS\System32\SspiCli.dll.
C:\WINDOWS\System32\ucrtbase.dll.
C:\WINDOWS\System32\USER32.DLL.
C:\WINDOWS\System32\win32u.dll.
C:\WINDOWS\SYSTEM32\winbrand.dll.
C:\WINDOWS\System32\WINTRUST.dll.
C:\WINDOWS\SYSTEM32\wldp.dll.
C:\WINDOWS\SysWOW64\cmd.exe.

flashpixx 11. Aug 2019 23:10

AW: Continuous Integration Prozess mit Docker & Rad Studio
 
Zitat:

Zitat von Aviator (Beitrag 1440147)
Unter welchem Betriebssystem läuft denn deine Docker Instanz? Ich gehe mal davon aus, dass du das unter Windows ausprobiert hast. Zusätzlich müssen die Container wohl als Windows Container laufen. Was ich so gelesen habe, hat die neueste Version von Docker for Windows auch einige Verbesserungen erhalten um mehr Möglichkeiten zu haben Container laufen zu lassen.

Ich nutze die aktuelle Docker Installation und der Container ist ein Windows-Container, wie gesagt, ich kann auch den Container ohne Probleme ausführen und in ihm arbeiten, nur der Compiler / Linker des Rad Studios funktionieren aktuell (noch) nicht.

flashpixx 12. Aug 2019 00:45

AW: Continuous Integration Prozess mit Docker & Rad Studio
 
Zitat:

Zitat von TiGü (Beitrag 1440165)
Zitat:

Zitat von flashpixx (Beitrag 1440135)
Zitat:

Zitat von TiGü (Beitrag 1439946)
Brauchst du überhaupt eine komplette Installation von Delphi?
Reicht es nicht, wenn du dir den Compiler (dcc32.exe und/oder dcc64.exe) in den Docker-Container holst und dann ganz klassisch per MSBUILD die Delpi-Projekte baust?
Sicher gibt es doch die ein oder andere Abhängigkeit, die man mit knobeln auflösen muss, aber nichts was nicht ggf. lösbar wäre.

Ja genau das hatte ich gedacht, also habe ich das bin bzw bin64 Verzeichnis direkt mit COPY in den Container kopiert, wenn ich dann aber versuche irgendeine Exe wie dcc32 auszuführen, passiert gar nichts. Es kommt keine Fehlermeldung aber das Programm funktioniert auch nicht

Schau doch mal, ob der dcc32.exe alle Abhänigkeiten findet:

Ich habe geschaut, alle Dateien sind in den Pfaden vorhanden, die Pfade sind in der PATH Umgebungsvariablen eingetragen. Ich habe als Test das gesamte Rad-Studio Installationsverzeichnis in den Docker-Container kopiert, die Pfade gesetzt wie in meinem Host-Windows, aber bei einem Aufruf von dcc32 kommt keine Ausgabe. Auf meinem Host-Windows System erscheint eine Auflistung der Parameter. Der einzige Unterschied zwischen ist der Pfad des Rad Studios, im Docker-Container liegt das Studio unter C:\Dev\rad\19.0 und im Host-Windows unter C:\Program Files...

TiGü 12. Aug 2019 07:50

AW: Continuous Integration Prozess mit Docker & Rad Studio
 
Schau doch mal bei deiner normalen Installation mit dem Process Monitor von SysInternals, was da genau passiert und vergleiche mit deinen Docker Image.

flashpixx 12. Aug 2019 10:13

AW: Continuous Integration Prozess mit Docker & Rad Studio
 
Zitat:

Zitat von TiGü (Beitrag 1440928)
Schau doch mal bei deiner normalen Installation mit dem Process Monitor von SysInternals, was da genau passiert und vergleiche mit deinen Docker Image.

Ein Docker-Container hat keine UI, sondern nur eine Kommandozeile. Da alle Tools immer ein UI mitbringen, hätte ich keine Idee, wie man das sinnvoll innerhalb des Container debuggen kann.
Als zweite Idee wäre, kann man nur die Kommandozeilen Tools direkt durch das Setup installieren lassen, also das Setup ausführen, "irgendwie" die Lizenz hineinbekommen und nur die Kommandozeilentools installieren

TiGü 12. Aug 2019 12:50

AW: Continuous Integration Prozess mit Docker & Rad Studio
 
Ok, das "vergleiche" führte dich vielleicht auf eine falsche Spur.
Ich meinte, schau dir genau per Process Monitor an was der dcc32.exe im (normalen) System alles anfasst und lädt und dann guckst du nach, ob diese Abhängigkeiten auch im Container da sind.

TiGü 12. Aug 2019 12:54

AW: Continuous Integration Prozess mit Docker & Rad Studio
 
Wurde das schon genannt?
https://stackoverflow.com/questions/...ild-automation

MaBuSE 29. Aug 2019 10:52

AW: Continuous Integration Prozess mit Docker & Rad Studio
 
Zitat:

Zitat von flashpixx (Beitrag 1440890)
..., ich kann auch den Container ohne Probleme ausführen und in ihm arbeiten, nur der Compiler / Linker des Rad Studios funktionieren aktuell (noch) nicht.

Meines Wissens benötigt der dcc32 mehr als nur die Dateien in %ProgramFiles(x86)%\Embarcadero\ .

Wenn Du Rad Studio nativ installierst und das erste mal aufrufst, werden in der Registry unter HKCU\Software\Embarcadero\BDS einige Daten abgelegt.
Unter "%APPDATA%\Embarcadero" liegen dann auch Daten die verwendet werden könnten.
Es ist auch möglich, dass die Lizenzdaten in C:\ProgramData\Embarcadero\.licenses\ von dcc32.exe verwendet werden.

Installiere RAD nativ, starte es ein mal und sicher dir die Registry und die Dateien in den oben genannten Verzeichnissen.
Dann Stell die Dateien und Regkeys im Docker zur Verfügung.

Vor dem Start der Kommandozeilentools solltest Du auch "$(BDS)\bin\rsvars.bat" im Image aufrufen.
Dort werden von DCC und msbuild benötigte Enviroment-Variablen gesetzt.

Weitere Abhängigkeiten fallen mir im Moment nicht ein ;)

Ich hoffe das hilft Dir.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:50 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz