peterla
Goto Top

Docker: php:7.4-apache lässt sich mit Dockerfile nicht modifizieren

Hallo zusammen!

Ich experimentiere gerade ein bisschen mit Docker herum.

Folgendes Setup:
Es läuft das php:7.4-apache-Image. Dieses möchte ich nun wie folgt modifizieren:
- PHP-Extension bcmath installieren
- Das Apache-Rewrite-Modul aktivieren.

Also habe ich im Image getestet, ob das mit den Kommandos, die ich im Kopf hatte auch so funktioniert. Auf folgende bin ich gekommen:
- a2enmod rewrite
- docker-php-ext-install bcmath (Ist eine Helper-Funktion, die das Image mitbringt)
- service apache2 restart


Daher habe ich folgendes Dockerfile geschrieben:
FROM php:7.4-apache

RUN a2enmod rewrite
RUN docker-php-ext-install bcmath
RUN service apache2 restart

Build ist erfolgt mittels "docker build -t php_ext ."

Im Docker-compose-File wird das ganze nun so aufgerufen:
  app:
    build:
      context: ./images/php_ext
    container_name: app

Nun habe ich folgendes Ergebnis: bcmath ist installiert, das Apache-Modul ist aber nicht aktiviert.
Der Build dürfte also grundsätzlich funktioniert haben, sonst wäre bcmath ja nicht in diesem Image installiert, oder?

Jetzt stehe ich ein bisschen an und weiß nicht so genau, was ich falsch gemacht habe.
Danke im Vorhinein und liebe Grüße an euch alle!

Content-ID: 547949

Url: https://administrator.de/contentid/547949

Ausgedruckt am: 25.11.2024 um 10:11 Uhr

certifiedit.net
certifiedit.net 15.02.2020 um 19:37:59 Uhr
Goto Top
Hallo,

einfach mal ins blaue, warum enabled rewrite, aber kein enable auf die bcmath ext?

VG
peterla
peterla 15.02.2020 um 19:58:03 Uhr
Goto Top
Hi,

verrate ich dir gerne ;)
Die bcmath-Extension ist in diesem Docker-Image nicht vorhanden, damit es schlank bleibt.
Weil der Helper die Extension von php auch sofort aktiviert (die wird also installiert und aktiviert), ist das nicht mehr separat möglich.

Rewrite hingegen wird bereits im Image mitgeliefert, ist aber nicht aktiviert. Das wird also nur aktiviert und muss nicht mehr installiert werden.

Danke für deine Antwort und viele Grüße retour!
certifiedit.net
Lösung certifiedit.net 15.02.2020 um 20:06:14 Uhr
Goto Top
Dann probier es mal ohne helper. Docker ist fein, aber wenn das Image für'n A... ist, dann bringt dir das alles nichts. Hatte erst letztens die Sache mit einem Composerpackage, dachte mir, klingt gut, kann man ggf. brauchen. Also kurz installieren, prüfen, gut ist. Nichts da, 1,5h an mir selbst gezweifelt, bis ich durch einen Hinweis eines Contributors drauf kam, dass das ganze Package nur noch halbgar gewartet wurde und nicht mehr mit php > 5.5 klar kommt. why ever.
peterla
peterla 15.02.2020 um 20:22:41 Uhr
Goto Top
Hiho,

danke für die Antwort.
Der Helper macht aber eben schon was er soll, das mit dem rewrite funktioniert nicht. BC Math macht keine Probleme, wie im ersten Beitrag erwähnt.

Oder meinst du, dass das Ausführen des Helpers verhindert, dass das Apache Modul ordnungsgemäß aktiviert werden kann?

Grüße.
certifiedit.net
certifiedit.net 15.02.2020 um 20:31:06 Uhr
Goto Top
Korrekt, das meine ich.
peterla
peterla 15.02.2020 um 20:43:32 Uhr
Goto Top
Ich fass' es nicht.

Du hattest recht, ich habe das ganze umgedreht, also statt so
RUN a2enmod rewrite
RUN docker-php-ext-install bcmath
RUN service apache2 restart
sieht es jetzt so aus
RUN a2enmod rewrite
RUN service apache2 restart
RUN docker-php-ext-install bcmath

Welchen Unterschied auch immer das jetzt macht face-wink

Vielen Dank, du hast mich gerade vor vielen weiteren Stunden Stirnrunzeln bewahrt.