alpine 製作 PHP 環境映象

雪花飄發表於2020-06-30

最近在研究 gateway-worker 的使用,使用的 php 基礎映象是 debian,在安裝 event 擴充套件時遇到 php7 configure: error: Cannot find OpenSSL's <evp.h> 問題搞了好久,安裝 openssl,libssl-dev,都沒有解決,於是嘗試把 php 環境換了,使用 alpine 來搭建 php 環境試一下。

  • 以下是對應 Dockerfile 檔案
    from alpine:latest
    label author="xxx@163.com"
    RUN set -x \
      && sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \
      && apk update \
      && apk add --no-cache tzdata vim openssl openssh openssl-dev bash curl libevent \
      && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
      && apk del tzdata
    RUN set -x \
      && apk update \
      && apk add --no-cache php7 \
      php7-ctype php7-curl php7-json php7-fileinfo php7-iconv \
      php7-mbstring php7-openssl php7-pcntl php7-pdo php7-pdo_mysql \
      php7-posix php7-session php7-pecl-event
    CMD ["/bin/bash"]
    其中擴充套件是按照以前的環境擴充套件安裝的,可以到 pkgs.alpinelinux.org/packages 查詢相關擴充套件,比如查詢 event 擴充套件,搜尋 php7*event*
    這裡有個問題是安裝的是 php7.3版本的,有時我們的 php 版本不能隨便變,就要安裝其他版本的 php。
  • 安裝其他版本的 php
    在 alpine 映象中
    wget -O /etc/apk/keys/phpearth.rsa.pub https://repos.php.earth/alpine/phpearth.rsa.pub
    echo "https://repos.php.earth/alpine/v3.7" >> /etc/apk/repositories
    apk update 更新索引
    apk search php7.1 搜尋相關 php 版本軟體資訊
    這個方法也只能安裝 php7.X 版本的而已,參考 docs.php.earth/docker/alpine/
本作品採用《CC 協議》,轉載必須註明作者和本文連結

雪花飄

相關文章