zoukankan      html  css  js  c++  java
  • Dockerfile 构建 php8

    官方的 php8 镜像基本满足开发需要,但有时却缺扩展,有两种选择,一是在容器内部去安装,二是在原来的基础上重新构建镜像。

    基于 php:8.0-fpm-buster 来说,原镜像自带了几个官方的 shll 脚本,地址: https://github.com/docker-library/php/tree/deb4a80b409c21ecdd2b884142fab51b48a9b3cb/8.0/buster/fpm

    docker-php-ext-configure :配置安装参数,即生成 ./configure --enable-php-fpm 之类的

    docker-php-ext-install :从源码包安装扩展

    docker-php-ext-enable :开启扩展,即配置写入 php.ini

    docker-php-entrypoint :这个是进入点,大概意思是,如果启动镜像时,如:docker run --name test -d php:8.0 cmd 如果最后的 cmd 是以 “-” 开头则表示它只是作为 php-fpm 的一个参数,运行 php-fpm cmd,否则运行 cmd

    下面 php 安装扩展的几种方式,根据需要选择。

    FROM php:8.0-fpm-buster
    
    #编译安装核心扩展
    RUN apt-get update && apt-get install -y 
        libfreetype6-dev 
        libjpeg62-turbo-dev 
        libpng-dev 
        && docker-php-ext-configure gd --with-freetype --with-jpeg 
        && docker-php-ext-install -j$(nproc) gd
    
    #pecl 安装扩展
    RUN pecl install redis-5.3.2 
        && pecl install xdebug-2.8.1 
        && docker-php-ext-enable redis xdebug
    
    
    #从源码包安装扩展
    RUN curl -fsSL 'https://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz' -o xcache.tar.gz 
        && mkdir -p /tmp/xcache 
        && tar -xf xcache.tar.gz -C /tmp/xcache --strip-components=1 
        && rm xcache.tar.gz 
        && docker-php-ext-configure /tmp/xcache --enable-xcache 
        && docker-php-ext-install /tmp/xcache 
        && rm -r /tmp/xcache

    我的 Dockerfile 如下:

    FROM php:8.0-fpm-buster
    
    #更换源
    RUN    sed -i "s/deb.debian.org/mirrors.aliyun.com/g" /etc/apt/sources.list 
    
    #编译安装核心扩展 gd
    RUN apt-get update &&
        apt-get install -y     libfreetype6-dev libjpeg62-turbo-dev libpng-dev &&
        docker-php-ext-configure gd --with-freetype --with-jpeg &&
        docker-php-ext-install -j$(nproc) gd
    
    #pecl 安装扩展 redis
    RUN pecl install redis-5.3.2 
        && docker-php-ext-enable redis

    进行到 Dockerfile 目录,执行  docker build -t zbseoag/php:8.0 . 就可以了。运行容器之后,进入容器,php -m 查看一下扩展有没有装成功。

     
  • 相关阅读:
    如何垂直居中一个浮动元素?
    微信小程序vant-search获取不到输入的搜索内容踩坑
    关于微信小程序无法使用css3过度属性transition以及微信小程序如何利用api进行画面过度的展示
    Spring Shedule Task之注解实现 (两次启动Schedule Task 的解决方案)
    学习站点记录
    Spring 通过配置文件注入 properties文件
    Liunx下安装jdk
    Mybatis使用generator自动生成映射配置文件信息
    Tomcat容器虚拟路径设置
    Spring init-method和destroy-method 的使用
  • 原文地址:https://www.cnblogs.com/zbseoag/p/14168420.html
Copyright © 2011-2022 走看看