您的位置 首页 php

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  wheezy main non-free contrib" > /etc/apt/sources.list \

#&& echo "deb  wheezy-proposed-updates main non-free contrib" >> /etc/apt/sources.list \

#&& echo "deb-src  wheezy main non-free contrib" >> /etc/apt/sources.list \

#&& echo "deb-src  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  \

&& 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('#39;);" | 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  \

################################

#composer安装laravel

#composer global require laravel/installer

&& echo "安装完毕!" \  
pecl方式安装:
  • 以上扩展通过pecl方式安装:
  •  	##php-zip####################################################
    	# 安 装 php 扩展 php-zip(zip)
    	# 切换目录到 /tmp
    	&& cd /tmp \
    	# 下载扩展包
    	&& wget  \
    	# && wget  \
    	# 解压
    	&& 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  \
    	# 解压
    	&& 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  \
    	&& 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 php安装扩展步骤详解:https : // www . cnblogs . com /yinguohai/p/11329273.html
  • 文章来源:智云一二三科技

    文章标题:Dockerfile基于镜像php:7.2-fpm构建自定义php7.2镜像

    文章地址:https://www.zhihuclub.com/77928.shtml

    关于作者: 智云科技

    热门文章

    网站地图