![]() |
Continuous Integration Prozess mit Docker & Rad Studio
Hallo,
ich arbeite zurzeit mit dem Embaccadero Rad Studio (Tokio) und ich erstelle gerade auf einer selbstgehosteten ![]() ![]() ![]() ![]() Gibt es eine Möglichkeit das Rad Studio, genauer die Buildtools (Compiler / Linker / Bibliotheken / Lizenz) in einem Docker-Container auszuführen, um in Gitlab direkt den Code bei Änderung des Repositories zu bauen? Danke für die Hilfe |
AW: Continuous Integration Prozess mit Docker & Rad Studio
Ich hatte
![]() PS: Wenn es funktioniert, wäre ich auch daran interessiert. Hatte aber bisher nicht die Zeit mich damit zu beschäftigen. |
AW: Continuous Integration Prozess mit Docker & Rad Studio
Danke für die Info, das würde aber nur dann funktionieren, wenn ich das Rad Studio nativ auf einem Windows installiere und direkt mittels Gitlab Runner in der Shell ausführe. In meinem Docker Container startet keine Anwendung des Rad Studios überhaupt. Es kommt einfach keine Fehlermeldung, sondern ich rufe die Exe auf und dann passiert nichts.
|
AW: Continuous Integration Prozess mit Docker & Rad Studio
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. |
AW: Continuous Integration Prozess mit Docker & Rad Studio
Zitat:
Hast du schon gegoogelt? Mit "Docker & Rad Studio" finde ich z.B. ![]() |
AW: Continuous Integration Prozess mit Docker & Rad Studio
Zitat:
|
AW: Continuous Integration Prozess mit Docker & Rad Studio
RAD Studio wird keineswegs in einem Docker Container laufen können, denn soweit mir bekannt ist, gibt es derzeit kein Windows Image mit UI.
Man wird also höchstens den Kommandozeilen Compiler und alle notwendigen anderen Dateien nehmen können und die in einem Container ausführen können, was ja für CI durchaus ausreichend ist. |
AW: Continuous Integration Prozess mit Docker & Rad Studio
Wenn ich mich recht erinnere, hat
![]() |
AW: Continuous Integration Prozess mit Docker & Rad Studio
Zitat:
|
AW: Continuous Integration Prozess mit Docker & Rad Studio
Zitat:
|
AW: Continuous Integration Prozess mit Docker & Rad Studio
Zitat:
|
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.
|
AW: Continuous Integration Prozess mit Docker & Rad Studio
Zitat:
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. |
AW: Continuous Integration Prozess mit Docker & Rad Studio
Zitat:
|
AW: Continuous Integration Prozess mit Docker & Rad Studio
Zitat:
|
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.
|
AW: Continuous Integration Prozess mit Docker & Rad Studio
Zitat:
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 |
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. |
AW: Continuous Integration Prozess mit Docker & Rad Studio
|
AW: Continuous Integration Prozess mit Docker & Rad Studio
Zitat:
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. |
AW: Continuous Integration Prozess mit Docker & Rad Studio
Zitat:
Verwende mal "mcr.microsoft.com/windows/servercore:ltsc2019" oder falls auch msbuild benötigt wird "mcr.microsoft.com/dotnet/framework/runtime:4.8". Damit gibt dcc32 beim Aufruf im Container zumindest die Parameter aus, weiter habe ich es noch nicht probiert. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz