• 基于centos8镜像,打包php的docker镜像


    创建镜像构建目录

    mkdir -p /opt/docker/php
    cd /opt/docker/php
    
    

    下载php软件包

    wget http://cn2.php.net/distributions/php-7.2.33.tar.gz -P /opt/docker/php
    

    编写Dockerfile文件install

    FROM centos
    MAINTAINER swift
    #RUN dnf install -y glibc-langpack-en && \
    RUN rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm && \
    dnf install -y dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm 
    #dnf -y module list php && \
    #dnf -y module enable php:remi-7.3 && \
    RUN dnf install -y epel-release  
    RUN dnf -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-mysqlnd gcc gcc-c++ glibc-headers make autoconf  && \
    dnf clean all 
    #dnf -y groupinstall "Development Tools" && \
    RUN groupadd www
    RUN useradd -g www www   
    ADD php-7.2.33.tar.gz   /usr/local/src/
    RUN cd /usr/local/src/php-7.2.33 && \
        ./configure --prefix=/usr/local/php72 \
        --with-config-file-path=/usr/local/php72/etc \
        --with-config-file-scan-dir=/usr/local/php72/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/php72/etc/php-fpm.conf.default /usr/local/php72/etc/php-fpm.conf && \
        cp ./php.ini-production  /usr/local/php72/etc/php.ini && \
        cp /usr/local/php72/etc/php-fpm.d/www.conf.default /usr/local/php72/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.2.33
    EXPOSE 9000
    
    ENTRYPOINT /etc/init.d/php-fpm start &&  tail -f /usr/local/php72/var/log/php-fpm.log
    

    构建php镜像

    docker build -t dockerfile/php7-2:v1 .
    

    测试使用镜像

    docker run -d -p 9000:9000 --name php-test dockerfile/php7-2:v1
    #查看docker是否运行
    docker ps | grep php-test
    #查看端口
    ss -anlptu | grep 9000
    #查看日志
    docker logs php-test -f
    

    添加redis扩展

    mkdir -p /opt/docker/php/php-redis
    cd /opt/docker/php/php-redis
    

    以dockerfile/php7-2:v1为基础进行扩展

    FROM dockerfile/php7-2:v1
    MAINTAINER swift
    RUN cd /usr/local/src 
    RUN yum install -y autoconf
    ADD phpredis-develop.tar.gz /usr/local/src/
    RUN mv /usr/local/src/phpredis-develop /usr/local/src/phpredis72
    RUN cd /usr/local/src/phpredis72  && \
        /usr/local/php72/bin/phpize && \
        ./configure  --with-php-config=/usr/local/php72/bin/php-config && \
        make && make install && \
        echo extension=redis.so >> /usr/local/php72/etc/php.ini
    

    build镜像

    docker build -t dockerfile/php7-2-redis:v1 .
    

    创建测试容器验证

    docker run -d -p 9006:9000  --name php-test-redis dockerfile/php7-2-redis:v1
    

    查看redis模块是否加载

    docker exec -it php-test-redis bash -c  '/usr/local/php72/bin/php -m  | grep redis'
    
  • 相关阅读:
    开源类库项目构想,欢迎各位高手拍砖~~
    【算法10】在升序数组中查找和等于给定值的两个数
    【算法05】左旋转字符串
    【算法04】判断扑克牌中的顺子
    【算法12】时间为O(n)排序——计数排序
    【算法06】顺时针打印矩阵
    【算法08】数对之差的最大值
    【算法09】整数的转换成2进制有多少个1
    【算法03】n个骰子的总和
    【算法07】求子数组的最大和
  • 原文地址:https://www.cnblogs.com/anyux/p/15712489.html
Copyright © 2020-2023  润新知