Forum: Platinen Kicad in Docker


von Ein T. (ein_typ)


Angehängte Dateien:

Lesenswert?

Liebe Forenden,

angeregt durch diesen [1] Thread, habe ich das aktuelle Kicad samt 
Libraries in Docker eingepackt und ein kleines Makefile zum Bau eines 
Image und Start eines Containers mit Kicad gebastelt.

Voraussetzungen
===============
Voraussetzung ist, daß lokal Docker, make und envsubst (Paket 
gettext-base) installiert sind. (Ansonsten ist das keine 
Raketenwissenschaft, und erfahrene Nutzer können sich die entsprechenden 
Dateien und Befehle natürlich problemlos aus der Veranstaltung 
herauspicken.)

Vorsicht: da alle Kicad-Libraries installiert werden, ist das Image am 
Ende wenig über 6 GB groß. Genug freier Diskspace ist also zwingend 
notwendig!

Verwendung
==========
Wenn diese Voraussetzungen erfüllt sind, kann in dem entpackten 
Verzeichnis aus dem Zip-Archiv einfach der Befehl "make" aufgerufen 
werden.

Funktion
========
Das Makefile erzeugt mit envsubst aus dem Dockerfile.template ein 
Dockerfile und ersetzt dabei die Platzhalter aus dem Template mit dem 
Benutzernamen und der Benutzer-ID des lokalen Benutzers. Hernach wird 
ein Docker-Image mit dem originellen Namen "kicad" und dem Standard-Tag 
"latest" gebaut -- das dauert eine Weile -- und startet dann daraus 
Container mit dem keineswegs weniger originellen Namen "kicad". Wenn der 
Container einmal erzeugt wurde, ist es ausreichend, nurmehr "docker 
start kicad" einzugeben.

Durch die Konfiguration des Benutzers im Dockerfile (und mittels 
envsubst) startet das Kicad im Container mit dem Benutzernamen, der 
Benutzer-ID, und durch den Mountpoint /home auch im Home-Verzeichnis des 
Benutzers. Wer das anders haben möchte, kann es natürlich gerne anders 
konfigurieren.

ACHTUNG: vor dem Starten des Containers gebe ich den X-Server für 
Zugriffe von außen frei und sperre ihn nach dem Stoppen wieder. Das 
sollte auf den meisten Einzelplatzsystemen kein größeres 
Sicherheitsrisiko darstellen, es gefällt mir aber trotzdem nicht. Leider 
habe ich (noch?) nicht herausgefunden, wie ich das weiter einschränken 
kann, und ich habe auch schon lange nichts mehr mit xauth gemacht. Wer 
Ideen dazu hat, ist mir immer herzlich willkommen.

Viel Spaß, Glück und Erfolg!


[1] Beitrag "Installation KiCAD 9 unter Linux schlägt fehl"

: Verschoben durch Moderator
von Jens G. (jensig)


Lesenswert?

Welchen Sinn macht es eigentlich, ein simples Programm, was auf dem 
Systemn vermutlich ohnehin nur als Single-Instanz läuft, in einen 
Docker-Container einzusperren?

von G. K. (zumsel)


Lesenswert?

Lies mal meinen Beitrag in dem Fred:

G. K. schrieb:

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Warum nicht das existierende Dockerfile nehmen?

https://gitlab.com/kicad/packaging/kicad-cli-docker/-/blob/main/Dockerfile.9.0-stable?ref_type=heads

Dann wäre es auch die brandaktuelle Version.

Jens G. schrieb:
> Welchen Sinn macht es eigentlich, ein simples Programm

So simpel ist es nicht, es hat sehr viele Abhängigkeiten und ist groß. 
Wenn man das z.B. auf einem CI-Server laufen lassen will, hat der 
Container Vorteile. Auf manchen CI-Systemen wie den gitlab.com -Runnern 
muss man es in einem Container haben

von Jens G. (jensig)


Lesenswert?

Niklas G. schrieb:
> Jens G. schrieb:
>> Welchen Sinn macht es eigentlich, ein simples Programm
>
> So simpel ist es nicht, es hat sehr viele Abhängigkeiten und ist groß.

Mit simpel meinte ich nicht dessen technischen Ansprüche, sondern dessen 
simplen Anwendungs-Kontext. Also was macht es bei KiCad "notwendig", das 
in einen Container packen zu wollen?

: Bearbeitet durch User
von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Jens G. schrieb:
> Also was macht es bei KiCad "notwendig", das in einen Container packen
> zu wollen?

Es auf einem System zu installieren, auf das sich der Wust von 
Abhängigkeiten nicht so leicht einrichten lässt. Das ist ja sowieso der 
Haupt-Usecase von Containern.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.