首頁 > 軟體

docker 編輯Dockerfile 新增php7.2 acpu的問題

2022-07-19 18:01:20

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

執行

docker-compose up --build web

等待安裝即可

需要安裝其他擴充套件,自己去pecl上面查詢對應的php版本的包安裝即可

地址:https://pecl.php.net/package/APCu

Dockerfile基於映象php:7.2-fpm構建自定義php7.2映象

構建可以ssh連線、有基本命令、並且有zip pdo pdo_mysql curl redis 等擴充套件的php7.2映象

  • 以下程式碼需要寫在Dockerfile檔案中,並且已安裝docker命令
  • 在Dockerfile所在目錄下,執行構建映象命令即可開始構建: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 
	#安裝網路管理工具
	&& apt-get install net-tools -y 
	#安裝ping
	&& apt-get install iputils-ping -y 
	#安裝telnet
	&& apt-get install telnet -y 
	#安裝程序管理命令ps, top, vmstat, w, kill, free, slabtop, and skill
	&& apt-get install procps -y 
	#安裝C/C++編譯包,該軟體包,編譯c/c++所需要的軟體包也都會被安裝。
	#該包包含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使用者設定初始密碼123456
	&& echo "root:123456" | chpasswd 
	#修改設定項 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 
	#修改設定項 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 
	#同時修改設定項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擴充套件(安裝/usr/src/php/ext/目錄下的擴充套件,不存在的可以下載擴充套件安裝包放入該目錄,然後再執行/usr/local/bin/docker-php-ext-install xxx 安裝)
	#
	# curl擴充套件需要以下擴充套件包
	&& apt-get install libcurl4-openssl-dev -y 
	#
	# bz2擴充套件(bzip2)需要以下擴充套件包,安裝 bzip2 bzip2-devel 否則下面的docker-php-ext-install 安裝bz2擴充套件會報錯: configure: error: Please reinstall the BZip2 distribution
	&& apt-get install bzip2 -y 
	&& apt-get install libbz2-dev -y  
	#
	# redis擴充套件沒有離線包,需要先下載解壓移動到/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 
	#
	#解壓後移動到/usr/src/php/ext目錄下
	&& mkdir -p /usr/src/php/ext/ 
	&& mv phpredis-5.0.2 /usr/src/php/ext/redis 
	#
	# 開始安裝php這些php擴充套件
	&& /usr/local/bin/docker-php-ext-install zip pdo pdo_mysql curl redis 
	################################
	# 擴充套件所在目錄:
	#Installing shared extensions:     /usr/local/lib/php/extensions/no-debug-non-zts-20131226/
	# php的擴充套件目錄在 /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
	#然後新增設定項extension=zip.so即可
	################################
	#安裝composer命令
	#下載composer.phar
	#&& php -r "readfile('https://getcomposer.org/installer');" | php 
	#給composer.phar賦可執行許可權
	#將composer.phar複製到/bin/目錄下並重新命名為composer
	#&& mv composer.phar /bin/composer 
	#修改許可權,否則執行會報錯
	#&& chmod -R 777 /bin/composer 
	#檢視composer版本
	#composer -v
	#修改composer映象源地址為國內地址
	#&& composer config -g repo.packagist composer https://packagist.phpcomposer.com 
	################################
	#composer安裝laravel
	#composer global require laravel/installer
	&& echo "安裝完畢!" 

pecl方式安裝

以上擴充套件通過pecl方式安裝:

	##php-zip####################################################
	# 安 裝 php 擴充套件 php-zip(zip)
	# 切換目錄到 /tmp
	&& cd /tmp 
	# 下載擴充套件包
	&& 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 
	# 解壓後複製到目錄 /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 擴充套件 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 
	# 解壓後移動到 /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 擴充套件 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 
	# 解壓後移動到 /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

其他擴充套件與此雷同

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com