sqrtcat/php-swoole

By sqrtcat

Updated about 2 years ago

php + swoole, current version is php8.2 + swoole5.1.3, php is fpm mode, u can rewrite entrypoint

Image
Languages & frameworks
0

10K+

sqrtcat/php-swoole repository overview

预先开启了和安装了一些开发中必须得扩展:

iconv fileinfo exif gd sockets swoole redis pdo_mysql mysqli gd event

event 因依赖 sockets 扩展故未自动加载,请手动至于 docker-php-z-exts.ini 中保证其能后于 sockets 载入

Dockerfile

FROM php:8.2-fpm

RUN apt-get update
RUN apt-get install -y \
        libmcrypt-dev \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libpng-dev \
        libwebp-dev \
        libevent-dev \
        libssl-dev

# 解压源码
RUN docker-php-source extract

# 安装扩展
RUN docker-php-ext-install -j$(nproc) iconv exif fileinfo

# 如果安装的扩展需要自定义配置时
RUN docker-php-ext-configure gd --with-webp=/usr/include/webp --with-jpeg=/usr/include --with-freetype=/usr/include/freetype2/
RUN docker-php-ext-install -j$(nproc) gd

# docker-php-ext 安装扩展会被自动加载 /usr/local/etc/php/conf.d/docker-php-ext-xxx.ini
RUN docker-php-ext-install pdo_mysql
RUN docker-php-ext-install mysqli
RUN docker-php-ext-install sockets
RUN docker-php-ext-install sodium

RUN pecl install swoole && docker-php-ext-enable swoole
RUN pecl install redis && docker-php-ext-enable redis

# event 中默认 --enbale-event-socket 选项需要先安装 sockets 扩展后才可以
# pecl 安装的扩展不会被自动加载 需要手动配置引入 在宿主机上定义并挂在至容器的如下目录即可
# /usr/local/etc/php/conf.d/docker-php-z-exts.ini
# 加载顺序按文件名 ASCII 正序 比如 event 扩展依赖 sockets 需要在其后加载
# 所以我们自定义的文件名是用 -z- 来排在最后
RUN pecl install event

# 删除源码
RUN docker-php-source delete

Tag summary

Content type

Image

Digest

sha256:de84ba369

Size

225.2 MB

Last updated

about 2 years ago

docker pull sqrtcat/php-swoole