run qmake aus dockerfile

Gast #6420549
Lesenswert?
• ▲
▼
Hallo,

ich versuche gerade ein Dockerimage zu erstellen. Das funktioniert aber 
leider doch nicht so wie gedacht.

Das Problem ist, dass qmake nicht gefunden werden kann.
wenn ich
qmake  /usr/projects/test/test.pro
aus dem Terminal aufrufe wird eine Makefile erstellt.
aber aus der Dockerfile
RUN qmake /usr/projects/test/test.pro
oder
RUN /usr/share/Qt5.6.2/5.6/bin/qmake /usr/projects/test/test.pro

bekomme ich die Meldung, dass qmake nicht gefunden wurde.

Wenn ich das Dockerfile ausführe, kann ich dann auf lokale sachen 
zugreifen ( wie z.B. qmake) oder muss das erst noch mit apt-get install 
installiert werden?
#6420630
Lesenswert?
• ▲
▼
Johannes schrieb:
> Wenn ich das Dockerfile ausführe, kann ich dann auf lokale sachen
> zugreifen ( wie z.B. qmake) oder muss das erst noch mit apt-get install
> installiert werden?

Sinn vom Dockerfile ist es, das Kompilieren/Builden unabhängig vom 
Hosts-System zu machen, damit es überall reproduzierbar ist.

Also "nein" und "ja".

Da bietet sich dann ein Mehrstufiges Docker-File an, damit der letztlich 
erstellte Container nicht die ganzen Build-Dependencies mitschleppen 
muss.

https://docs.docker.com/develop/develop-images/multistage-build/
Gast #6422691
Lesenswert?
• ▲
▼
Docker ist eine der grössten Sch..., die es in der IT gibt! Wenn die 
Entwickler nicht in der Lage sind Runtime- und Abwärtskompatibilität der 
Libs,  Abhängigkeiten usw.... im Griff zu haben, dann sollen sie zurück 
auf die Schulbank! Docker ist nur ein Workaround für die Faulheit.
#6426326
Lesenswert?
• ▲
▼
Johannes schrieb:
> ich versuche gerade ein Dockerimage zu erstellen. Das funktioniert aber
> leider doch nicht so wie gedacht.
>
> Das Problem ist, dass qmake nicht gefunden werden kann.
> wenn ich
> qmake  /usr/projects/test/test.pro
> aus dem Terminal aufrufe wird eine Makefile erstellt.
> aber aus der Dockerfile
> RUN qmake /usr/projects/test/test.pro
> oder
> RUN /usr/share/Qt5.6.2/5.6/bin/qmake /usr/projects/test/test.pro
>
> bekomme ich die Meldung, dass qmake nicht gefunden wurde.
>
> Wenn ich das Dockerfile ausführe, kann ich dann auf lokale sachen
> zugreifen ( wie z.B. qmake) oder muss das erst noch mit apt-get install
> installiert werden?

Ja, natürlich. Dein Base-Image (FROM) ist ein minimales Linux, wobei die 
einzelnen Distributoren unter "minimal" etwas unterschiedliche Dinge 
verstehen. Das siehst Du schon an den verschiedenen Größen einiger 
solcher Base-Images: ubuntu:20.04 ist zum 73 Megabyte groß, 
debian:latest 114 MB, und alpine:latest nur knapp 6 MB. Wie dem auch 
sei: alles, was nicht in diesem Base-Image enthalten ist, muß natürlich 
mit den bekannten Mechanismen (apt, yum, dnf, apk, ...) installiert 
werden. Auf etwas lokal installiertes kannst Du im Build-Prozeß nicht 
zugreifen, weil der Build seinerseits in eigenen Containern läuft, die 
automatisch dynamisch generiert und nach einem fehlerfreien Build auch 
automatisch wieder weggeworfen werden.

Tipp am Rande: da Du anscheinend ein QT-Projekt übersetzen möchtest, 
möchte ich Dir wärmstens empfehlen, Dir mal Dockers "Multi Stage Builds" 
[1] anzuschauen, um Deine Images klein zu halten und Deinem Kunden 
außerdem nicht womöglich gleich auch den Quellcode zu Deiner Software 
mit dem Image zu liefern. ;-)

[1] https://docs.docker.com/develop/develop-images/multistage-build/
Gast #6427776
Lesenswert?
• ▲
▼
Sheeva P. schrieb:

> Ich habe seit langer Zeit nichts mehr so Dummes gelesen.

Nix ist dümmer als für jede noch so kleine Anwendung mehrere Hundert MB 
große Images zu erstellen, konfigurieren und deployen. Meistens ohne zu 
verstehen was man genau macht, was genau passiert usw... usf...

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.