Dockerfile构建PHP镜像

Dockerfile构建PHP镜像

内容导读

收集整理的这篇技术教程文章主要介绍了Dockerfile构建PHP镜像,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5128字,纯文字阅读大概需要8分钟

内容图文

1 搭建私有镜像仓库

1) 拉起镜像仓库docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry2)修改配置仓库是之能够被我们使用vi /etc/docker/daemon.json{"registry-mirrors": ["http://04be47cf.m.daocloud.io"],"insecure-registries":["192.168.184.130:5000"]}systemctl daemon-reload systemctl restart docker
3)测试仓库是否可用curl http://192.168.184.130:5000/v2/_catalog{"repositories":[]} 说明成功

2 创建镜像构建目录

mkdir /tmp/php

3 下载php软件包

wget http://cn2.php.com/distributions/php-7.1.5.tar.gz -P /tmp/php

4 编写Dockerfile文件

cd /tmp/phpcat Dockerfile FROM centos:7MAINTAINER swiftRUN yum install -y install epel-release &&

 yum -y install git wget lrzsz vim
libxml2 libxml2-devel openssl openssl-devel curl curl-devel libjpeg-turbo libjpeg-turbo-devel libpng-devel libpng freetype-devel freetype icu libicu-devel libicu libmcrypt libmcrypt-devel libxslt libxslt-devel php-mysql &&

 yum -y groupinstall "Development Tools" &&

 yum provides "*/applydeltarpm" &&


yum install deltarpm -y &&



yum clean all &&

 groupadd www &&

 useradd -g www www
 ADD php-7.1.5.tar.gz
 /usr/local/src/RUN cd /usr/local/src/php-7.1.5 &&

 ./configure --prefix=/usr/local/php71

 --with-config-file-path=/usr/local/php71/etc

 --with-config-file-scan-dir=/usr/local/php71/conf.d

 --enable-fpm --with-fpm-user=www

 --with-fpm-group=www

 --with-mysql=mysqlnd

 --with-mysqli=mysqlnd

 --with-pdo-mysql=mysqlnd

 --with-iconv-dir

 --with-freetype-dir=/usr/local/freetype

 --with-jpeg-dir

 --with-png-dir

 --with-zlib

 --with-libxml-dir=/usr

 --enable-xml

 --disable-rpath

 --enable-bcmath

 --enable-shmop

 --enable-sysvsem

 --enable-inline-optimization

 --with-curl

 --enable-mbregex

 --enable-mbstring

 --with-mcrypt


--enable-ftp

 --with-gd

 --enable-gd-native-ttf

 --with-openssl

 --with-mhash

 --enable-pcntl

 --enable-sockets

 --with-xmlrpc

 --enable-zip

 --enable-soap

 --with-gettext

 --disable-fileinfo

 --enable-opcache

 --enable-intl

 --with-xsl &&

 make -j 4 && make install &&

 cp /usr/local/php71/etc/php-fpm.conf.default /usr/local/php71/etc/php-fpm.conf &&

 cp ./php.ini-production
/usr/local/php71/etc/php.ini &&

 cp /usr/local/php71/etc/php-fpm.d/www.conf.default /usr/local/php71/etc/php-fpm.d/www.conf &&

 cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm &&

 chmod +x /etc/init.d/php-fpm &&

 rm -rf /usr/loacl/src/php-7.1.5EXPOSE 9000CMD ["/etc/init.d/php-fpm","start"]

5 构建php镜像

docker build -t 192.168.184.130:5000/lnmp-7-php71:base .

6 查看查看已经构建的镜像并上传到私有仓库(php视频教程)

1)查看镜像# docker imagesREPOSITORY












 TAG







 IMAGE ID





CREATED





 SIZE192.168.184.130:5000/lnmp-7-php71

base







9c85344d010f



8 minutes ago


 1.26GB2)给镜像打tagdocker tag
192.168.184.130:5000/lnmp-7-php71:base 192.168.184.130:5000/lnmp-7-php71:v33)上传到私有仓库docker push 192.168.184.130:5000/lnmp-7-php71:v34)查看镜像仓库 curl http://192.168.184.130:5000/v2/lnmp-7-php71/tags/list{"name":"lnmp-7-php71","tags":["base","v3","redis","redisv1","redisv2"]}

7 测试使用镜像

1) run起来一个phpdocker run -d -p 9000:9000 --name php-test 192.168.184.130:5000/lnmp-7-php71:v32)查看docker是否运行# docker ps | grep php-test5ad6cbbaf728



192.168.184.130:5000/lnmp-7-php71:v3
 "/bin/sh -c '/etc/in…"
 5 minutes ago


 Up 5 minutes



0.0.0.0:9000->9000/tcp, 9006/tcp
 php-test3)查看端口# ss -anlptu | grep 9000tcp

LISTEN

 0


128


:::9000







 :::*








 users:(("docker-proxy",pid=7340,fd=4))4)查看日志# docker logs php-test -fStarting php-fpm
done

8 添加redis扩展

1)创建php-redisDocker文件目录#mkdir redis2) 以php-test 192.168.184.130:5000/lnmp-7-php71:v3为基础镜像添加redis扩展# cat Dockerfile FROM 192.168.184.130:5000/lnmp-7-php71:v3MAINTAINER swiftRUN cd /usr/local/src &&

 git clone https://github.com/phpredis/phpredis.git phpredis71 &&

 cd phpredis71 &&

 /usr/local/php71/bin/phpize &&

 ./configure
--with-php-config=/usr/local/php71/bin/php-config &&

 make && make install 3) build镜像#docker build -t 192.168.184.130:5000/lnmp-7-php71:redis .4)给镜像打tag#docker tag 192.168.184.130:5000/lnmp-7-php71:redis 192.168.184.130:5000/lnmp-7-php71:redisv25)上传到私有仓库#docker push 192.168.184.130:5000/lnmp-7-php71:redisv26)创建php.ini配置文件#cat php.iniextension=redis.so7)创建测试容器验证#docker run -d -p 9006:9000 -v /root/redis/php.ini:/usr/local/php71/etc/php.ini --name php-test-redis 192.168.184.130:5000/lnmp-7-php71:redisv28)查看redis模块是否加载#docker exec -it php-test-redis bash -c
'/usr/local/php71/bin/php -m
| grep redis'redis##############################################################################################################################kill -USR2 ps -ef | grep php-fpm | grep 'master process' | grep '/usr/local/php71/etc/php-fpm.conf' | awk -F ' ' '{print $2}'###############################################################################################################################

以上就是Dockerfile构建PHP镜像的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的Dockerfile构建PHP镜像全部内容,希望文章能够帮你解决Dockerfile构建PHP镜像所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。


本文关键词:

联系我们

在线咨询:点击这里给我发消息

邮件:w420220301@qq.com