docker 編輯Dockerfile 添加php7.2 acpu的問題
docker 編輯Dockerfile 添加php7.2 acpu
直接編輯Dockerfile
ARG INSTALL_APCU=false RUN if [ ${INSTALL_APCU} = true ]; then \ ? ? # Install Php apcu Extension ? ? apk add apcu \ ? ? && pecl install https://pecl.php.net/get/apcu-5.1.13.tgz apcu.tgz \ ? ? && docker-php-ext-enable apcu \ ;fi
執(zhí)行
docker-compose up --build web
等待安裝即可
需要安裝其他擴(kuò)展,自己去pecl上面查找對(duì)應(yīng)的php版本的包安裝即可
地址:https://pecl.php.net/package/APCu
Dockerfile基于鏡像php:7.2-fpm構(gòu)建自定義php7.2鏡像
構(gòu)建可以ssh連接、有基本命令、并且有zip pdo pdo_mysql curl redis 等擴(kuò)展的php7.2鏡像
- 以下代碼需要寫在Dockerfile文件中,并且已安裝docker命令
- 在Dockerfile所在目錄下,執(zhí)行構(gòu)建鏡像命令即可開始構(gòu)建:docker build -t hengda/php7.2-fpm:v1 .
docker-php-ext 方式安裝
FROM php:7.2-fpm RUN apt-get update \ #cp -r /etc/apt/sources.list /etc/apt/sources.list.bak \ #修改軟件源 # #&& echo "deb http://mirrors.aliyun.com/debian/ wheezy main non-free contrib" > /etc/apt/sources.list \ #&& echo "deb http://mirrors.aliyun.com/debian/ wheezy-proposed-updates main non-free contrib" >> /etc/apt/sources.list \ #&& echo "deb-src http://mirrors.aliyun.com/debian/ wheezy main non-free contrib" >> /etc/apt/sources.list \ #&& echo "deb-src http://mirrors.aliyun.com/debian/ wheezy-proposed-updates main non-free contrib" >> /etc/apt/sources.list \ # #&& apt-get update \ #切換目錄 && cd /tmp \ #安裝sudo && apt-get install sudo -y \ #安裝vim文本編輯器 && apt-get install vim -y \ #安裝wget下載工具 && apt-get install wget -y \ #安裝網(wǎng)絡(luò)管理工具 && apt-get install net-tools -y \ #安裝ping && apt-get install iputils-ping -y \ #安裝telnet && apt-get install telnet -y \ #安裝進(jìn)程管理命令ps, top, vmstat, w, kill, free, slabtop, and skill && apt-get install procps -y \ #安裝C/C++編譯包,該軟件包,編譯c/c++所需要的軟件包也都會(huì)被安裝。 #該包包含gcc,g++,make等` && apt-get install build-essential -y \ #安裝zip依賴 zlib && apt-get install zlib1g-dev -y \ #安裝zip && bash -c "apt-get install unzip -y;" \ #安裝openssh-server 即sshd && apt install -y openssh-server -y \ #給root用戶設(shè)置初始密碼123456 && echo "root:123456" | chpasswd \ #修改配置項(xiàng) PermitRootLogin #&& sed 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config > /etc/ssh/sshd_config.tmp \ #&& cat /etc/ssh/sshd_config.tmp > /etc/ssh/sshd_config \ #修改配置項(xiàng) UsePAM #&& sed 's/UsePAM yes/UsePAM no/' /etc/ssh/sshd_config > /etc/ssh/sshd_config.tmp \ #&& cat /etc/ssh/sshd_config.tmp > /etc/ssh/sshd_config \ #同時(shí)修改配置項(xiàng)PermitRootLogin 和UsePAM #&& sed 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config > /etc/ssh/sshd_config.tmp \ #&& sed 's/UsePAM yes/UsePAM no/' /etc/ssh/sshd_config.tmp > /etc/ssh/sshd_config \ && sed -i 's/#PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config \ && sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config \ && sed -i 's/UsePAM yes/UsePAM no/' /etc/ssh/sshd_config \ ################################ # # 用docker-php-ext-install 命令安裝php擴(kuò)展(安裝/usr/src/php/ext/目錄下的擴(kuò)展,不存在的可以下載擴(kuò)展安裝包放入該目錄,然后再執(zhí)行/usr/local/bin/docker-php-ext-install xxx 安裝) # # curl擴(kuò)展需要以下擴(kuò)展包 && apt-get install libcurl4-openssl-dev -y \ # # bz2擴(kuò)展(bzip2)需要以下擴(kuò)展包,安裝 bzip2 bzip2-devel 否則下面的docker-php-ext-install 安裝bz2擴(kuò)展會(huì)報(bào)錯(cuò): configure: error: Please reinstall the BZip2 distribution && apt-get install bzip2 -y \ && apt-get install libbz2-dev -y \ # # redis擴(kuò)展沒有離線包,需要先下載解壓移動(dòng)到/usr/src/php/ext/目錄下 && cd /tmp \ && curl -L -o phpredis-5.0.2.tar.gz https://codeload.github.com/phpredis/phpredis/tar.gz/5.0.2 \ && tar -xzvf phpredis-5.0.2.tar.gz \ && rm -f phpredis-5.0.2.tar.gz \ # #解壓后移動(dòng)到/usr/src/php/ext目錄下 && mkdir -p /usr/src/php/ext/ \ && mv phpredis-5.0.2 /usr/src/php/ext/redis \ # # 開始安裝php這些php擴(kuò)展 && /usr/local/bin/docker-php-ext-install zip pdo pdo_mysql curl redis \ ################################ # 擴(kuò)展所在目錄: #Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20131226/ # php的擴(kuò)展目錄在 /usr/local/lib/php/extensions/no-debug-non-zts-20170718 #配置 #cp /usr/local/etc/php/php.ini-development /usr/local/etc/php/php.ini #vim /usr/local/etc/php/php.ini #然后添加配置項(xiàng)extension=zip.so即可 ################################ #安裝composer命令 #下載composer.phar #&& php -r "readfile('https://getcomposer.org/installer');" | php \ #給composer.phar賦可執(zhí)行權(quán)限 #將composer.phar復(fù)制到/bin/目錄下并重命名為composer #&& mv composer.phar /bin/composer \ #修改權(quán)限,否則執(zhí)行會(huì)報(bào)錯(cuò) #&& chmod -R 777 /bin/composer \ #查看composer版本 #composer -v #修改composer鏡像源地址為國內(nèi)地址 #&& composer config -g repo.packagist composer https://packagist.phpcomposer.com \ ################################ #composer安裝laravel #composer global require laravel/installer && echo "安裝完畢!" \
pecl方式安裝
以上擴(kuò)展通過pecl方式安裝:
##php-zip#################################################### # 安 裝 php 擴(kuò)展 php-zip(zip) # 切換目錄到 /tmp && cd /tmp \ # 下載擴(kuò)展包 && wget http://qinqinxia.com/zip-1.13.5.tgz \ # && wget http://pecl.php.net/get/zip-1.13.5.tgz \ # 解壓 && tar -zvxf zip-1.13.5.tgz \ # 刪除壓縮包 && rm -f zip-1.13.5.tgz \ # 解壓后復(fù)制到目錄 /usr/local/src && mv zip-1.13.5 /usr/local/src \ # 切換目錄到 /usr/local/src/zip-1.13.5 && cd /usr/local/src/zip-1.13.5 \ && /usr/local/bin/phpize \ && ./configure --with-php-config=/usr/local/bin/php-config \ && make && make install \ # ##pdo_mysql################################################# # 安 裝 php 擴(kuò)展 pdo_mysql # 切換到 tmp 目錄 && cd /tmp \ #下 載 php-mysql && wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz \ # 解壓 && tar -xzvf PDO_MYSQL-1.0.2.tgz \ && rm -f PDO_MYSQL-1.0.2.tgz \ # 解壓后移動(dòng)到 /usr/local/src && mv PDO_MYSQL-1.0.2 /usr/local/src \ # 切換到目錄 /usr/local/src/PDO_MYSQL-1.0.2 && cd /usr/local/src/PDO_MYSQL-1.0.2 \ # 安裝 php-mysql && /usr/local/bin/phpize \ && ./configure --with-php-config=/usr/local/bin/php-config --with-pdo-mysql=/usr/local/bin/mysql \ && make && make install \ # ##redis############################################# # 安裝 php 擴(kuò)展 redis # 下載 && cd /tmp \ && curl -L -o phpredis-5.0.2.tar.gz https://codeload.github.com/phpredis/phpredis/tar.gz/5.0.2 \ && tar -xzvf phpredis-5.0.2.tar.gz \ && rm -f phpredis-5.0.2.tar.gz \ # 解壓后移動(dòng)到 /usr/local/src && mv phpredis-5.0.2 /usr/local/src \ && cd /usr/local/src/phpredis-5.0.2 \ && /usr/local/bin/phpize \ && ./configure --with-php-config=/usr/local/bin/php-config \ && make && make install
其他擴(kuò)展與此雷同
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
docker --link容器互聯(lián)的實(shí)現(xiàn)
–link可以通過容器名互相通信,容器間共享環(huán)境變量,本文主要介紹了docker --link容器互聯(lián)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03教你使用docker安裝elasticsearch和head插件的方法
這篇文章主要介紹了docker安裝elasticsearch和head插件,安裝時(shí)需要下載鏡像和修改系統(tǒng)參數(shù),本文分流程給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04docker掛載NVIDIA顯卡運(yùn)行pytorch的方法
這篇文章主要介紹了docker掛載NVIDIA顯卡運(yùn)行pytorch的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-02-02詳解ASP.NET Core 網(wǎng)站在Docker中運(yùn)行
本篇文章主要介紹了詳解ASP.NET Core 網(wǎng)站在Docker中運(yùn)行,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-05-05