Sign inSign up

yekern/php82-swoole

By yekern

•Updated about 1 year ago

build by m2max exts edis,xlswriter,yac,mongodb,protobuf swoole gd pgsql zip bcmath sockets iconv

Image
0

1.8K

yekern/php82-swoole repository overview

使用PHP官方镜像php:8.2作为基础,添加了常用扩展 使用macbook m2 build打包

# 基础镜像
FROM php:8.2 as builder


RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list.d/debian.sources && rm -Rf /var/lib/apt/lists/* &&  cat /etc/apt/sources.list.d/debian.sources


# 复制扩展包
COPY ./ext/*.tgz /tmp/

RUN apt-get update \
    && export CFLAGS="$PHP_CFLAGS" CPPFLAGS="$PHP_CPPFLAGS" LDFLAGS="$PHP_LDFLAGS" \
    && apt-get install -y libssl-dev libicu-dev zlib1g-dev libpq-dev libmcrypt-dev libfreetype6-dev libjpeg62-turbo-dev libpng-dev librdkafka-dev libzip-dev git unzip procps \
    && docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install -j$(nproc) gd pgsql pdo_pgsql mysqli pdo_mysql zip bcmath sockets pcntl iconv \
    && apt autoremove && apt clean -y

# 安装redis扩展
RUN pecl install /tmp/redis-6.2.0.tgz && docker-php-ext-enable redis

# 安装excel处理扩展
RUN pecl install /tmp/xlswriter-1.5.8.tgz && docker-php-ext-enable xlswriter

# 安装缓存 opcache
RUN docker-php-ext-configure opcache --enable-opcache && docker-php-ext-install opcache

# 安装xdebug 默认不启动
RUN pecl install /tmp/xdebug-3.4.5.tgz

# 安装yac 
RUN pecl install /tmp/yac-2.3.1.tgz && docker-php-ext-enable yac
# 安装kafka插件
RUN pecl install /tmp/rdkafka-6.0.5.tgz && docker-php-ext-enable rdkafka

# 安装mongodb
RUN pecl install /tmp/mongodb-1.15.3.tgz && docker-php-ext-enable mongodb

# 安装protobuf
RUN pecl install /tmp/protobuf-4.29.5.tgz && docker-php-ext-enable protobuf

# 安装swoole
RUN pecl install /tmp/swoole-5.1.8.tgz && docker-php-ext-enable swoole

RUN rm -f /tmp/*.tgz

FROM php:8.2

RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list.d/debian.sources && rm -Rf /var/lib/apt/lists/* &&  cat /etc/apt/sources.list.d/debian.sources

RUN apt-get update \
    && apt-get install -y libssl-dev libicu-dev zlib1g-dev libpq-dev libmcrypt-dev libfreetype6-dev libjpeg62-turbo-dev libpng-dev librdkafka-dev libzip-dev git unzip procps \
    && apt autoremove && apt clean -y
# 从构建阶段复制编译成果
COPY --from=builder /usr/local/lib/php/extensions/ /usr/local/lib/php/extensions/
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/

# 安装composer
RUN curl -o composer https://mirrors.aliyun.com/composer/composer.phar \
    && mv composer /usr/bin/composer \
    && chmod a+x /usr/bin/composer \
    && composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

RUN cp "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"

RUN { \
    echo "[swoole]"; \
    echo "swoole.use_shortname = Off"; \
    echo "swoole.enable_coroutine = On"; \
    } >> /usr/local/etc/php/conf.d/docker-php-ext-swoole.ini


EXPOSE 9501
EXPOSE 9002

WORKDIR /app

Tag summary

Content type

Image

Digest

sha256:e7f39c3dc…

Size

233.5 MB

Last updated

about 1 year ago

docker pull yekern/php82-swoole