是否可以在现有的Alpine 3.12 Docker映像上安装PHP7.4?

时间:2020-07-10 14:48:23

标签: php linux docker alpine php-7.4

是否可以在stock Alpine 3.12 Docker映像上安装PHP7.4?

我已经看到this repo及其使用Bintray证书和存储库路径的dockerfile,但是我想知道是否还有本机执行此操作的“标准/阿尔卑斯”方式?

3 个答案:

答案 0 :(得分:7)

您可以使用下面的Docker映像。

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

输出

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

答案 1 :(得分:3)

如果您想查看完整的示例,最好总是调查供应商的Dockerfile

这来自图片php:7.4-fpm-alpine3.12

https://github.com/docker-library/php/blob/86c8ec4d387132b65dbe6c5ab1747f858e03852e/7.4/alpine3.12/fpm/Dockerfile

如您所见,它们添加了很多东西来确保PHP顺利运行并解决启动/上下文问题。

答案 2 :(得分:3)

使用高山边缘:

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

这是对Adiii答案的更新,建议将两个高山版本(3.12edge)混合使用,这是可怕的结果,并且很难理解出了什么问题。您可能最终会遇到库错误,因为它混合了3.12中的一个软件包和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