欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

docker打包php7.3镜像

时间:2023-05-18
docker 打包php镜像

CentOS 7
Docker 1.16.x
php: 7.3

构建docker打包步骤 step.1 拉取基础php:7.3-apache镜像

docker pull php:7.3-apache

可以查看一下php镜像的环境变量

docker inspect php:7.3-apache

step.2 创建Dockerfile

在你的php项目项目代码下创建Dockerfile文件,如下结构

-myAppPHP |-src |-index.php |-config |-php.ini |-Dockerfile

注意,建议把php.ini一起拷贝到镜像中

index.php的内容如下

<?phpphpinfo();?>

Dockerifle的内容如下

FROM php:7.3-apacheCOPY ./src /var/www/html/COPY ./config /usr/local/etc/php/

注意,拷贝的路径是src下的文件,到/var/www/html/下,不包括src,如需要包括,则使用COPY 、/var/www/html/

参考地址 https://hub.docker.com/_/php/

step.3 开始构建docker镜像

在Dockerfile文件的同级目录下执行构建docker镜像指令

docker build -t phpapp:latest .

查看镜像

step.4 启动镜像

docker run -d -p 30001:80 --name myphp phpapp

浏览器输入 IP:30001即可见如下内容

安装常用php拓展模块

查看默认php模块

# 进入php容器docker exec -it myphp bash

进入容器后适用php -m 查看启用的模块

通过php -i 查看php信息
php -i | grep -i extension_dir 查看拓展目录

执行php安装指令

# 容器中执行docker-php-ext-install pdo_mysqldocker-php-ext-install mysqli

php:7.3-apache ls: cannot access ‘.’: Operation not permitted
这是docker版本过低,把docker升级到1.20以上可以解决

也可以将安装命令做到Dockerfile中

FROM php:7.3-apacheCOPY ./src /var/www/html/COPY ./config /usr/local/etc/php/RUN docker-php-ext-install pdo_mysqlRUN docker-php-ext-install mysqli

其他php的拓展安装

php拓展安装过程常用的命令有

docker-php-sourcedocker-php-ext-installdocker-php-ext-enabledocker-php-ext-configure

参考地址https://www.cnblogs.com/yinguohai/p/11329273.html

php的拓展目录在如下目录

cd /usr/src/php/ext/

如无改目录,可能是未解压,我们进入/usr/src,可以看到如下内容

cd /usr/srclsphp.tar.xz php.tar.xz.asc

使用 docker-php-source extract 命令解压

安装拓展时,只需要使用 docker-php-ext-install 即可,如果没有需要的拓展,则可下载源码到改目录,再使用该命令进行安装,安装好后,可以启用

启用插件的命令为docker-php-ext-enable

启动的插件配置,我们可以在/usr/local/etc/php目录下的conf.d找到一一对应的模块配置

cd /usr/local/etc/phplsconf.d php.ini php.ini-development php.ini-production# 当个模块的配置文件ls conf.d/docker-php-ext-mysqli.ini docker-php-ext-pdo_mysql.ini docker-php-ext-sodium.ini# 查看配置内容长什么样的cat docker-php-ext-mysqli.iniextension=mysqli.so

显然,跟php.ini中的写法一样,我们也可以直接修改/usr/local/etc/php/php.ini文件,添加php拓展的配置

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。