Alpine Edge verwenden:
FROM alpine:edge
RUN apk add php
RUN php -v
Dies ist eine Aktualisierung der Adiii-Antwort, die vorschlägt, zwei Alpine-Versionen zu mischen (3.12
und edge
), das ist ein schreckliches Ergebnis und schwer zu verstehen, was schief gelaufen ist. Es kann zu Bibliotheksfehlern kommen, da ein Paket aus 3.12
gemischt wurde und andere Pakete von edge
:
/ # php -m
PHP Warning: PHP Startup: Unable to load dynamic library 'igbinary.so' (tried: /usr/lib/php7/modules/igbinary.so (Error relocating /usr/lib/php7/modules/igbinary.so: php_error_docref0: symbol not found), /usr/lib/php7/modules/igbinary.so.so (Error loading shared library /usr/lib/php7/modules/igbinary.so.so: No such file or directory)) in Unknown on line 0
Sie können das folgende Docker-Image verwenden.
FROM alpine:3.12
RUN apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/community php
RUN php -v
Ausgabe
Step 3/3 : RUN php -v
---> Running in 9900e66f4b71
PHP 7.4.7 (cli) (built: Jun 14 2020 23:46:20) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
Wenn Sie ein vollwertiges Beispiel sehen möchten, ist es immer am besten, die Dockerfile
des Anbieters zu untersuchen .
Dies ist aus Bild php:7.4-fpm-alpine3.12
:
https://github.com/docker-library/php/blob/86c8ec4d387132b65dbe6c5ab1747f858e03852e/7.4/alpine3.12/fpm/Dockerfile
Wie Sie sehen können, fügen sie eine Menge Dinge hinzu, um sicherzustellen, dass PHP reibungslos läuft und Start-/Kontextprobleme gelöst werden.