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?
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
Und dann verlinken Sie in Ihrer docker-compose.yml
-Datei damit, wie folgt:
Sehen Sie sich den Parameter build
an - er zeigt auf das Verzeichnis, in dem sich die neue Docker-Datei befindet.
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:
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
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
unddocker-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
:
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:
Und in Dockerfile
führe ich das Skript aus. nicht nginx
:
Tags und Links docker docker-compose dockerfile php-extension