最近在做php项目的时候,发现使用docker部署php应用非常方便。docker是一个开源的容器管理工具,能够将应用及其依赖打包到一个可移植的容器中,从而实现跨平台、快速部署的目的。
在docker中,有很多php镜像可供选择,比如官方提供的php镜像、alpine linux上的php镜像等。这里以官方提供的php镜像为例:
docker pull php:7.2-fpm
上述命令会从docker hub上拉取名为php:7.2-fpm
的镜像。下面是一个简单的dockerfile示例,用来构建一个可以运行php-fpm的镜像:
FROM php:7.2-fpm WORKDIR /var/www/html COPY . /var/www/html
上述dockerfile使用php:7.2-fpm作为基础镜像,将工作目录设置为/var/www/html,并复制当前目录下所有文件到容器中的/var/www/html目录下。
在实际使用中,我们通常还需要安装一些扩展库,比如PDO、mysqli等等。可以使用docker提供的扩展安装命令来进行安装:
RUN docker-php-ext-install pdo_mysql mysqli
上述命令会在容器中安装pdo_mysql、mysqli扩展库。如果需要安装其他扩展库,可以在命令中通过添加扩展名来进行安装,比如docker-php-ext-install gd
即可安装gd库。
另外,我们还可以自定义php配置,比如修改php.ini、fpm配置文件等。可以通过COPY命令将本地的配置文件拷贝到容器中对应的目录下:
COPY conf/php.ini /usr/local/etc/php/ COPY conf/www.conf /usr/local/etc/php-fpm.d/
上述命令会将本地的php.ini、www.conf文件分别拷贝到容器中的/usr/local/etc/php/、/usr/local/etc/php-fpm.d/目录下。
最后,我们可以通过docker run命令来启动容器并运行php应用:
docker run -p 8080:80 my-php-app
上述命令会启动一个名为my-php-app的容器,并将容器中的端口80映射到本地的端口8080,从而可以在本地访问容器中运行的php应用。
以上就是使用docker装php应用的一些方法和示例,通过docker的快速部署和跨平台特性,我们可以更加轻松地进行php开发和部署。