Führe 'docker-php-ext-install' aus einem anderen Container als php aus

8

Ich habe ein Problem mit Docker (docker-compose). Ich möchte einige PHP-Erweiterungen mit docker-compose.yml installieren, aber ich kann das nicht, weil meine .yml FROM ubuntu und nicht FROM php hat. Gibt es eine Möglichkeit, das docker-php-ext-install zu erreichen oder darauf zuzugreifen?

Dockerfile

%Vor%

docker-compose.yml

%Vor%

Konsolenausgabe (Fragment)

%Vor%     
Albert221 19.02.2017, 20:53
quelle

2 Antworten

13

Neue Lösung

Nach vier Monaten intensiver Durchsicht der Dokumentation, nach unzähligen Stunden, die wir damit verbracht haben, Dockerfiles von Fremden zu studieren, nach dieser großen Menge schlafloser Nächte ... Endlich die richtige Antwort !

Sie müssen lediglich eine neue Dockerdatei für einen bestimmten Dienst erstellen, in diesem Fall php :

php/Dockerfile

%Vor%

Und dann verlinken Sie in Ihrer docker-compose.yml -Datei damit, wie folgt:

%Vor%

Sehen Sie sich den Parameter build an - er zeigt auf das Verzeichnis, in dem sich die neue Docker-Datei befindet.

Alte Lösung

Ich bin um das Problem herumgelaufen. Ich habe herausgefunden, dass ich dieses docker-php-ext-install -Skript immer noch mit folgendem Befehl ausführen kann:

%Vor%

Und aus praktischen Gründen habe ich diese einfache Batch-Datei erstellt, um das Zusammenstellen von Containern auf einen einzigen Befehl zu vereinfachen: ./docker.bat

%Vor%     
Albert221 20.02.2017, 18:44
quelle
4

docker-php-ext-install ist keine native Docker-Funktionalität. Wenn Sie die php docker hub Seite sorgfältig lesen, werden Sie sehen, dass es nur ein Skript ist, das den Installationsprozess vereinfacht :

  

Wir bieten die Hilfsskripte docker-php-ext-configure , docker-php-ext-install und docker-php-ext-enable an, um PHP-Erweiterungen einfacher zu installieren.

Wenn Ihr Bild auf ubuntu , nicht auf php basiert, finden Sie möglicherweise docker-php-ext-install , zum Beispiel auf github .

Aber da dein Dockerfile FROM ubuntu ist, rate ich dir, php mit apt-get :

zu installieren %Vor%

Vergessen Sie nicht, nginx für die Verwendung von php-fpm einzurichten. Dazu benutze ich persönlich ein start.sh -Skript, das php-fpm und nginx im Container startet:

%Vor%

Und in Dockerfile führe ich das Skript aus. nicht nginx :

%Vor%     
Alex Karshin 19.02.2017 23:16
quelle