$ docker exec -it php /bin/bashphp
$ cd /usr/local/bin html
$ ./docker-php-ext-install pdo_mysql mysqli mysql gd libzip-dev zip // ./docker-php-ext-install pdo_mysql mysqli gd zip bcmathmysql
$ docker restart phpweb
ps:sql
if custom ./configure arguments are necessary, see docker-php-ext-configuremongodb
Possible values for ext-name:docker
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 zipjson
apt-get update && \ apt-get install -y libmcrypt-dev
// 安裝 gd 拓展bash
apt-get update && apt-get install -y \ libfreetype6-dev \ libjpeg62-turbo-dev \ libpng-dev \ && docker-php-ext-install -j$(nproc) iconv \ && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ && docker-php-ext-install -j$(nproc) gd
// 自定義 imagessession
Dockerfile
FROM php:5.6-fpm RUN apt-get update && \ apt-get install -y --no-install-recommends \ libssl-dev # install the mongodb extension RUN pecl install mongo-1.6.1 && \ docker-php-ext-enable mongo
Dockerfile
FROM php:5.6-fpm RUN apt-get update && \ apt-get install -y --no-install-recommends \ libssl-dev # install the mongodb extension RUN pecl install mongodb-1.4.4 && \ docker-php-ext-enable mongodb
FROM php:7.1-fpm RUN apt-get update \ # 相關依賴必須手動安裝 && apt-get install -y \ libfreetype6-dev \ libjpeg62-turbo-dev \ libmcrypt-dev \ libpng-dev \ # 安裝擴展 && docker-php-ext-install -j$(nproc) iconv mcrypt \ # 若是安裝的擴展須要自定義配置時 && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ && docker-php-ext-install -j$(nproc) gd
ps:
https://blog.aikamino.cn/a/1019.html
gd庫安裝步驟
在容器內使用docker-php-ext-install gd安裝gd,使用過程當中一些程序報錯Call to undefined function imagettftext()。在phpinfo中發現它只支持png,因此須要從新編譯。
本文使用的docker鏡像爲php:7.1-fpm
首先主機中執行docker exec -it <容器名 or id> /bin/bash進入容器的命令行。
#主機中 #若是以前啓用了gd,須要先在php.ini文件中註釋掉extension=gd.so並重啓容器 docker exec -it <容器ID或容器名稱> /bin/bash #進入php容器
#容器中 echo "deb http://mirrors.163.com/debian/ stretch main contrib non-free\ndeb http://mirrors.163.com/debian/ stretch-updates main contrib non-free\ndeb http://mirrors.163.com/debian/ stretch-backports main contrib non-free" > /etc/apt/sources.list #軟件源修改成網易鏡像站源 apt update #更新軟件源 apt install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev #安裝各類庫 docker-php-source extract #解壓源碼 cd /usr/src/php/ext/gd #gd源碼文件夾 docker-php-ext-configure gd --with-webp-dir=/usr/include/webp --with-jpeg-dir=/usr/include --with-png-dir=/usr/include --with-freetype-dir=/usr/include/freetype2 #準備編譯 docker-php-ext-install gd #編譯安裝 php -m | grep gd #重啓容器
若是沒有出現錯誤,那麼gd應該已經支持jpeg等。