如何在基於 Docker 的 PHP 環境安裝 Gearman 擴展

在 pecl 中的擴展 gearman 已經好久沒有更新,最新是 2013 年發佈的 gearman-1.1.2.tgz,該版本只支持 PHP7 如下的版本。若是想 在 PHP7.0+ 的環境中安裝 Gearman 擴展,須要經過源碼編譯的方式安裝。php

說明:Gearman 依賴 Gearmand 服務,Gearmand 又依賴 libuuid 包。git

完整的 Dockerfile 示例以下:github

FROM php:7.0-apache

# 修改軟件更新源
COPY ./source.list /etc/apt/sources.list

RUN apt-get update \
    # 安裝擴展依賴包
    && apt-get install -y wget \
    # 下載源碼包:gearman
    && mkdir -p /tmp/gearmand /tmp/gearman /tmp/libuuid \
    && wget -c https://github.com/gearman/gearmand/releases/download/1.1.18/gearmand-1.1.18.tar.gz \
    && tar -xf gearmand-1.1.18.tar.gz -C /tmp/gearmand --strip-components=1 \
    && wget -c https://github.com/wcgallego/pecl-gearman/archive/gearman-2.0.3.tar.gz \
    && tar -xf gearman-2.0.3.tar.gz -C /tmp/gearman --strip-components=1 \
    && wget -c http://nchc.dl.sourceforge.net/project/libuuid/libuuid-1.0.3.tar.gz \
    && tar -xf libuuid-1.0.3.tar.gz -C /tmp/libuuid --strip-components=1 \
    # 安裝 Gearmand,主要是安裝 PHP 所需的依賴 libgearman
    && cd /tmp/libuuid \
    && ./configure \
    && make \
    && make install \
    && ( \
        cd /tmp/gearmand \
        && ./configure \
        && make \
        && make install \
    ) \
    && /sbin/ldconfig \
    # 安裝擴展:gearman
    && docker-php-ext-configure /tmp/gearman --with-php-config=/usr/local/bin/php-config \
    && docker-php-ext-install /tmp/gearman \
    # 清理安裝過程產生的垃圾文件
    && apt-get clean \
    && apt-get autoclean \
    && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

source.list 文件以下docker

#debian8
deb http://mirrors.aliyun.com/debian/ jessie main non-free contrib
deb http://mirrors.aliyun.com/debian/ jessie-proposed-updates main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ jessie main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ jessie-proposed-updates main non-free contrib
相關文章
相關標籤/搜索