docker 编辑Dockerfile 添加php7.2 acpu的问题

 更新时间:2022年07月19日 15:04:43   作者:可以吧可以吧  
这篇文章主要介绍了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

执行

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

其他扩展与此雷同

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 使用Docker compose启动自定义jar包的步骤详解

    使用Docker compose启动自定义jar包的步骤详解

    这篇文章主要介绍了使用Docker compose启动自定义jar包的步骤,首先我们需要编写一个docker-compose.yml文件来定义我们的服务传到我们的云服务器上,本文给大家分享示例代码,感兴趣的朋友一起看看吧
    2024-03-03
  • 详解使用Docker快速部署ELK环境(最新5.5.1版本)

    详解使用Docker快速部署ELK环境(最新5.5.1版本)

    这篇文章主要介绍了详解使用Docker快速部署ELK环境(最新5.5.1版本),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • docker配置pytorch环境来进行训练的方法步骤

    docker配置pytorch环境来进行训练的方法步骤

    本文主要介绍了docker配置pytorch环境来进行训练的方法步骤,从零开始配置,包括换源,安装下载,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • docker容器中安装vim问题解决

    docker容器中安装vim问题解决

    本文主要介绍了docker容器中安装vim问题解决,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • 关于docker安全之Docker-TLS加密通讯问题

    关于docker安全之Docker-TLS加密通讯问题

    这篇文章主要介绍了docker安全之Docker-TLS加密通讯,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • 创建Web项目的Docker镜像实例讲解

    创建Web项目的Docker镜像实例讲解

    这篇文章主要介绍了创建Web项目的Docker镜像实例讲解的相关资料,需要的朋友可以参考下
    2016-10-10
  • 基于Docker部署Tomcat集群、 Nginx负载均衡的问题小结

    基于Docker部署Tomcat集群、 Nginx负载均衡的问题小结

    这篇文章主要介绍了基于Docker部署 Tomcat集群、 Nginx负载均衡,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • 详解使用Docker进行Redis主从复制实践

    详解使用Docker进行Redis主从复制实践

    这篇文章主要介绍了详解使用Docker进行Redis主从复制实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 手把手教你docker部署(使用docker-compose)教程

    手把手教你docker部署(使用docker-compose)教程

    使用 Docker Compose 可以轻松、高效的管理容器,下面这篇文章主要给大家介绍了关于手把手教你docker部署(使用docker-compose)的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • docker-compose启动redis多机集群的实现(6台服务器3主3从)

    docker-compose启动redis多机集群的实现(6台服务器3主3从)

    本文主要介绍了docker-compose启动redis多机集群的实现(6台服务器3主3从),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07

最新评论