码迷,mamicode.com
首页 > Web开发 > 详细

Docker 构建PHP镜像

时间:2021-05-24 07:33:02      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:please   需要   模块名   library   执行   sem   red   zip2   shmop   

一、构建PHP镜像需要用到的命令

以下命令都需要在php容器中执行

docker-php-source:是在PHP容器中创建一个/usr/src/php的目录,里面放了一些自带的文件,自带的PHP扩展,扩展存放的路径/usr/src/php/ext

docker-php-source  [ extract | delete ]
参数说明:
extract : 创建并初始化 /usr/src/php目录
delete  : 删除 /usr/src/php目录

docker-php-ext-install:用来安装并启动php扩展

docker-php-ext-install "源码包名"
安装说明:
"源码包"需要放在 /usr/src/php/ext 目录下
默认情况下,PHP容器没有/usr/src/php这个目录,需要执行# docker-php-source extract 来生成。
docker-php-ext-install 安装的扩展在安装完成后,会自动调用docker-php-ext-enable来启动安装的扩展。
卸载扩展,直接删除/usr/local/etc/php/conf.d 对应的配置文件即可。

docker-php-ext-enable:就是用来启动PHP扩展的。我们使用pecl安装PHP扩展的时候,默认是没有启动这个扩展的,如果想要使用这个扩展必须要在php.ini这个配置文件中去配置一下才能使用这个PHP扩展。而 docker-php-ext-enable 这个命令则是自动给我们来启动PHP扩展的,不需要你去php.ini这个配置文件中去配置。

安装redis扩展
pecl install redis-5.3.4
docker-php-ext-enable redis

二、按需求构建php镜像,安装需要的php模块

# cat Dockerfile
FROM php:7.3.28-fpm
ADD swoole.tar.gz /usr/src/php/ext/         # 需要先自行下载 curl -fsSL https://pecl.php.net/get/swoole-4.5.9.tgz,解压后包名修改为swoole,再压缩成tar包。也可以直接在容器中下载改名,因为网络原因经常失败,所以先在本地下载后改名打包。
RUN apt-get update && apt-get install -y bzip2 libbz2-dev libpng-dev libgmp-dev libxml2-dev libxslt1-dev libzip-dev && docker-php-source extract && docker-php-ext-install exif bcmath bz2 calendar gd gettext gmp mysqli pcntl pdo_mysql shmop soap sockets sysvsem xmlrpc xsl zip swoole && pecl install redis-5.3.4 && pecl install mongodb && docker-php-ext-enable redis mongodb && docker-php-source delete && rm -rf /var/lib/apt/lists/* && apt-get clean 

安装php模块的时候一些依赖报错

模块名称:bz2      报错:configure: error: Please reinstall the BZip2 distribution    
解决方法:apt-get install bzip2 libbz2-dev -y
模块名称:gd 报错:configure: error: png.h not found.
解决方法:apt
-get install libpng-dev -y
模块名称:gmp 报错:configure: error: Unable to
locate gmp.h
解决方法:apt-get install libgmp-dev
模块名称:soap 报错:configure: error: libxml2 not found. Please check your libxml2 installation.
解决方法:apt
-get install -y libxml2-dev -y
模块名称:xmlrpc 报错:configure: error: libxml2 not found. Use
--with-libxml-dir=<DIR>
解决方法:apt-get install -y libxml2-dev -y
模块名称:xsl 报错:configure: error: xslt
-config not found. Please reinstall the libxslt >= 1.1.0 distribution
解决方法:apt-get install libxslt1-dev
模块名称:zip 报错:checking for the location of zlib... configure: error: zip support requires ZLIB. Use --with-zlib-dir=<DIR> to specify prefix where ZLIB include and library are located
解决方法:apt-get install libzip-dev -y

 

Docker 构建PHP镜像

标签:please   需要   模块名   library   执行   sem   red   zip2   shmop   

原文地址:https://www.cnblogs.com/cyleon/p/14763351.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!