当我使用kubernetes运行php部署时,我遇到了问题因为不加载模块或扩展库。
我的部署文件是这样的:
apiVersion:apps / v1kind:部署元数据: 名称: …
问题是您的docker CMD是运行php-fpm
https://github.com/docker-library/php/blob/bb16de8a711d1ba1dc76adf4665b3b1c06a06922/7.3/stretch/fpm/Dockerfile#L266
并且在容器启动后你无法更改加载到内存php配置。
您需要重新启动php-fpm才能应用更改,但重新启动会杀死容器,并且您将丢失所有更改。要为php添加一些库,您应该创建自己的docker镜像并将所有库安装到映像中,而不是在运行时安装它。
在github上也检查这个问题 https://github.com/docker-library/php/issues/331
所以答案是创建自己的映像并使用docker RUN命令安装所有必需的扩展
FROM php:7-fpm RUN apt-get install php-pdo php-mysql
之后你必须建立这个图像
docker build -t php:7-fpm-mysql .
把它推到一些码头注册表。例如hub.docker.com
docker push php:7-fpm-mysql
注意:自PHP 5.5。*之后不推荐使用php mysql扩展,而是使用PDO