一步步创建 PHP phalcon扩展  Docker 镜像

准备

在创建前,你需要准备:

  • 安装 Docker。
  • 了解 Dockerfile 。
  • 编写 Dockerfile

    FROM daocloud.io/php:5.6.6-fpm
    RUN apt-get update && apt-get install unzip \
        && curl -L -o /tmp/cphalcon.zip https://github.com/phalcon/cphalcon/archive/master.zip \
        && unzip -d /tmp/ /tmp/cphalcon.zip \
        && cd /tmp/cphalcon-master/build \
        && ./install \
        && echo 'extension=phalcon.so' > /usr/local/etc/php/conf.d/phalcon.ini \
        && apt-get remove unzip \
        && rm -rf /var/lib/apt/lists/* \
        && rm -rf /tmp/cphalcon* \
    
  • FROM 以 daocloud.io/php:5.6.6-fpm 为基础镜像
  • 更新 apt-get 并安装 unzip (用于后面的解压扩展文件)
  • 下载文件并安装
  • 添加 php 配置(原始镜像启动时,会加载 /usr/local/etc/php/conf.d/ 目录下的所有文件 )
  • 清除安装的 unzip、下载安装的文件及 apt 文件
  • docker build -t php5.6:phalcon .
    -t 指定镜像的名称
    . 用于生成镜像时指定 Dockerfile 的路径

  • 创建 php 文件 index.php 。
  • use Phalcon\Loader; $loader = new Loader();
  • 启动、进入镜像实例
  • docker run -it -d --name php -v you_code_dir:/var/www/html php5.6:phalcon
    docker exec -it php bash
    

    you_code_dir 一定要绝对路径
    运行 php index.php 无错误
    php -m ,看得到扩展 phalcon 已安装

    可以将生成的镜像 push 到仓库。

    docker tag efb1fbb0f302 daocloud.io/<你的组织ID>/php5.6:phalcon
    docker push daocloud.io/<你的组织ID>/php5.6:phalcon