Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

How to build a PHP image in Dockerfile

2025-01-16 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Servers >

Share

Shulou(Shulou.com)06/01 Report--

This article will explain in detail how to build a PHP image in Dockerfile. The content of the article is of high quality, so the editor will share it with you for reference. I hope you will have some understanding of the relevant knowledge after reading this article.

1 build a private image warehouse

1) pull up the image repository docker run-d\-v / opt/registry:/var/lib/registry\-p 5000 restart=always\-- name registry\ registry2) modify the configuration repository so that we can use vi / etc/docker/daemon.json {"registry-mirrors": ["http://04be47cf.m.daocloud.io"]," "insecure-registries": ["192.168.184.130 systemctl daemon-reload systemctl restart docker 5000"]} systemctl daemon-reload systemctl restart docker 3) Test whether the warehouse can be described successfully with curl http://192.168.184.130:5000/v2/_catalog{"repositories":[]}

2 create an image build directory

Mkdir / tmp/php

3 download php software package

Wget http://cn2.php.net/distributions/php-7.1.5.tar.gz-P / tmp/php

4. Write Dockerfile files

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. Build a php image

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

6 View the images that have been built and upload them to the private warehouse

1) View the image # docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE192.168.184.130:5000/lnmp-7-php71 base 9c85344d010f 8 minutes ago 1.26GB2) call the image tagdocker tag 192.168.184.130:5000/lnmp-7-php71:base 192.168.184.130 Php71:v33) upload to the private repository docker push 192.168.184.130:5000/lnmp-7-php71:v34) View the image repository curl http://192.168.184.130:5000/v2/lnmp-7-php71/tags/list{"name":"lnmp-7-php71", "tags": ["base", "v3", "redis", "redisv1", "redisv2"]}

7 testing using mirrors

1) run up a phpdocker run-d-p 9000 name php-test 192.168.184.130:5000/lnmp-7-php71:v32) to see if docker is running # 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/tcp 9000-> 9000/tcp, 9006/tcp php-test3) View port # ss-anlptu | grep 9000tcp LISTEN 0 128:: 9000: * users: (("docker-proxy", pid=7340,fd=4)) 4) View log # docker logs php-test-fStarting php-fpm done

8 add redis extension

1) create php-redisDocker file directory # mkdir redis2) add redis extension # 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 based on php-test 192.168.184.130:5000/lnmp-7-php71:v3 / phpize & &\. / configure-- with-php-config=/usr/local/php71/bin/php-config & &\ make & & make install 3) build Image # 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 to the image) upload to private Warehouse # docker push 192.168.184.130:5000/lnmp-7-php71:redisv26) create php.ini configuration file # cat php.iniextension=redis.so7) create test container verify # docker run-d-p 9006cat php.iniextension=redis.so7 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) check if the redis module is loaded with # 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}'# # # that's all about how to build a PHP image in Dockerfile I hope the above content can be of some help to you and learn more knowledge. If you think the article is good, you can share it for more people to see.

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Servers

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report