最近在做php項目的時候,發(fā)現(xiàn)使用docker部署php應(yīng)用非常方便。docker是一個開源的容器管理工具,能夠?qū)?yīng)用及其依賴打包到一個可移植的容器中,從而實現(xiàn)跨平臺、快速部署的目的。
在docker中,有很多php鏡像可供選擇,比如官方提供的php鏡像、alpine linux上的php鏡像等。這里以官方提供的php鏡像為例:
docker pull php:7.2-fpm
上述命令會從docker hub上拉取名為php:7.2-fpm
的鏡像。下面是一個簡單的dockerfile示例,用來構(gòu)建一個可以運行php-fpm的鏡像:
FROM php:7.2-fpm WORKDIR /var/www/html COPY . /var/www/html
上述dockerfile使用php:7.2-fpm作為基礎(chǔ)鏡像,將工作目錄設(shè)置為/var/www/html,并復(fù)制當前目錄下所有文件到容器中的/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命令將本地的配置文件拷貝到容器中對應(yīng)的目錄下:
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應(yīng)用:
docker run -p 8080:80 my-php-app
上述命令會啟動一個名為my-php-app的容器,并將容器中的端口80映射到本地的端口8080,從而可以在本地訪問容器中運行的php應(yīng)用。
以上就是使用docker裝php應(yīng)用的一些方法和示例,通過docker的快速部署和跨平臺特性,我們可以更加輕松地進行php開發(fā)和部署。