Is it possible to install PHP7.4 on stock Alpine 3.12 Docker image?

Viewed 13690

Is it possible to install PHP7.4 on stock Alpine 3.12 Docker image?

I have seen this repo and its dockerfile which is using bintray cert and repository path, but I was wondering if there is a more "standard/Alpine" way of doing this natively?

3 Answers

You can use below Docker image.

FROM alpine:3.12
RUN apk add --no-cache  --repository http://dl-cdn.alpinelinux.org/alpine/edge/community php
RUN php -v

output

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

Use alpine edge:

FROM alpine:edge
RUN apk add php
RUN php -v

This is update to Adiii answer suggesting to mix two alpine versions (3.12 and edge), this is terrible outcome, and difficult to understand what went wrong. You may end up with library errors, because it mixed one package from 3.12 and other package from 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 
Related