Docker 構建PHP鏡像


一、構建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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM