定义Dockerfile,采用官方php镜像安装,下面安装了拓展:
FROM php:5.6-fpmRUN apt-get update && apt-get install -ylibfreetype6-devlibjpeg62-turbo-devlibmcrypt-devlibpng12-dev&& docker-php-ext-install -j$(nproc) iconv mcrypt gd MySQLi mysql pdo pdo_mysql&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/&& docker-php-ext-enable mysqldocker-php-ext-install [-jN] ext-name [ext-name ...]
安装模块,docker-php-ext-install,如mysql模块:’docker-php-ext-install mysql’
可能的模块: bcmath bz2 calendar ctype curl dba dom enchant exif fileinfo filter ftp gd gettext gmp hash iconv imap interbase intl json ldap mbstring mcrypt mssql mysql mysqli oci8 odbc opcache pcntl pdo pdo_dblib pdo_firebird pdo_mysql pdo_oci pdo_odbc pdo_pgsql pdo_sqlite pgsql phar posix pspell readline recode reflection session shmop simplexml snmp soap sockets spl standard sybase_ct sysvmsg sysvsem sysvshm tidy tokenizer wddx xml xmlreader xmlrpc xmlwriter xsl zip
docker-php-ext-enable [options] module-name [module-name ...]
启用模块,docker-php-ext-enable,如’mysqli’模块:’docker-php-ext-enable mysql’
可能的模块: gd.so iconv.so mcrypt.so mysql.so mysqli.so opcache.so pdo.so pdo_mysql.so
docker-php-ext-configure ext-name [configure flags]
配置模块,docker-php-ext-configure,如gd配置:docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/
可能的值: bcmath bz2 calendar ctype curl dba dom enchant exif fileinfo filter ftp gd gettext gmp hash iconv imap interbase intl json ldap mbstring mcrypt mssql mysql mysqli oci8 odbc opcache pcntl pdo pdo_dblib pdo_firebird pdo_mysql pdo_oci pdo_odbc pdo_pgsql pdo_sqlite pgsql phar posix pspell readline recode reflection session shmop simplexml snmp soap sockets spl standard sybase_ct sysvmsg sysvsem sysvshm tidy tokenizer wddx xml xmlreader xmlrpc xmlwriter xsl zip
如果需要安装外置拓展必须要用到pecl命令,如安装redis:pecl install redis-3.1.0.
最后要启用docker-php-ext-enable redis
定义docker-compose.yml:
php: build: ./php container_name: php56 expose: - 9000 volumes: - /data/wwwroot:/var/www/html/data/wwwroot restart: always external_links: - mysql这样在我们的php连接数据的host可以采用mysql去代替
【Docker安装php-fpm扩展模块】
推荐阅读
- 史上最全Docker环境安装指南
- 使用dockerfile构建自己的镜像
- Docker Compose 网络设置,你了解多少?
- 将Php-fpm docker容器与Mongo DB docker容器连接
- 一文看懂docker容器技术架构及其中的各个模块
- Nginx和php-fpm部署到不同的服务器
- Docker 容器编排实践练习
- docker的四种网络模式
- Jenkins 安装和配置
- 体验docker容器的健康检查功能
