Image-Erweiterungen in Docker Containern

  • Hallo alle,

    nach zwei Wochen erfolgloser Suche versuche ich es hier noch einmal: Wie können Erweiterungen von Images auf einer QNAP NAS realisiert werden?


    Mittlerweile erlaubt ja die Dockerstation auch bei Erstellen > Applikation die Eingabe einer YAML Datei - so weit, so gut. Das ist insofern auch ganz gut implementiert, als auch eine Validierung vor Anwendung geht und einem das schmerzhafte trial & error auf putty erspart.

    ABER: Offenbar gibt es nach wie vor keinen Weg über diese YAML Dateien Erweiterungen der Images zu installieren. Man kann zwar Zeilen mit COMMAND: <Befehl> integrieren, aber die werden von der Containerstation beim Start an den Container übergeben und der kann damit nix anfangen.

    Mein (vermutlich lächerlich einfaches) Problem ist, dass ich PHP auf der aktuellsten Version entwickeln muss. Sollte je eigentlich mit einem Container auf Basis von php-latest oder php:7-apache machbar sein und ist es auch. Allerdings kommen dieses offizielle Images ohne die Erweiterungen mysqli und PDO, was mir auch völlig unverständlich ist, aber egal. Diese Erweiterungen lassen sich aber später nicht installieren, denn der so laufende Container hat keine PHP Oberfläche bzw. der php:7-apache hat eine, aber die gibt nur den Webserver weiter und sobald man z.B. in die Shell gehen will wird der Container wegen SIGWINCH gestoppt.

    Die klassichen DOCKERFILEs lt. Docker Dokumentation kann man allerdings mit der Containerstation nicht verwenden - ich wüsste nicht wo. Und die standardmäßig angelegten Verzeichnisse unterhalb der Containerstation (Container > containerstation-data > lib > docker) sind für den Zugriff auch als admin mit allen Rechten gesperrt, und dort müssten ja die Dockerfiles hin.

    Also entweder verstehe ich das Ganze nicht oder die Containerstation ist halt auch wieder mal eine halbgare Implementierung durch QNAP.

    Hat jemand dazu einen Lösungsvorschlag?

  • Die klassichen DOCKERFILEs lt. Docker Dokumentation kann man allerdings mit der Containerstation nicht verwenden - ich wüsste nicht wo.

    Doch kannst du. Einfach das entsprechende Dockerfile erstellen, dann per SSH auf dem NAS einloggen und in das entsprechende Verzeichnis wechseln und ein docker build . ausführen.

    Und mein Rat: wenn du dich mich Docker beschäftigst (oder beschäftigen musst), dann lohnt es sich die entsprechenden Kommandozeilenbefehle (so viele sind das nicht) zu lernen und die Oberfläche (Container Station) nur zum starten oder stoppen von Containern zu verwenden. Auch Container die du auf der Kommandozeile erstellst werden dort angezeigt.

  • Ja, genau das hatte ich gehofft zu vermeiden :)