dockerfiles/manual/php/Dockerfile_8.3-workerman

85 lines
2.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 拉基础镜像
FROM php:8.3-cli
# 替换源
RUN rm -rf /etc/apt/sources.list.d/debian.sources \
&& echo 'deb http://mirror.us.oneandone.net/debian bookworm main' > /etc/apt/sources.list \
&& echo 'deb-src http://mirror.us.oneandone.net/debian bookworm main' >> /etc/apt/sources.list \
&& apt-get update \
&& apt-get install -y netselect-apt \
&& netselect-apt --sources bookworm \
&& mv sources.list /etc/apt/ \
&& apt-get update
# pcntl socket event
RUN docker-php-ext-install pcntl sockets \
&& apt-get install -y libevent-dev \
&& printf "no\nyes\n/usr\nno\nyes\nno\nno\nyes\n" | pecl install https://pecl.php.net/get/event-3.1.4.tgz \
&& docker-php-ext-enable event \
&& cat /usr/local/etc/php/conf.d/docker-php-ext-event.ini >> /usr/local/etc/php/conf.d/docker-php-ext-sockets.ini \
&& mv /usr/local/etc/php/conf.d/docker-php-ext-sockets.ini /usr/local/etc/php/conf.d/docker-php-ext-event.ini
# pdo_mysql mysqli opcache exif bcmath(任意精度的数学库)
RUN docker-php-ext-install pdo_mysql \
mysqli \
opcache \
exif \
bcmath
# gd
RUN apt-get install -y \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \
libwebp-dev \
&& docker-php-ext-configure gd --enable-gd --with-freetype --with-jpeg --with-webp \
&& docker-php-ext-install -j$(nproc) gd
# gmp(大整数支持)
RUN apt-get install -y libgmp-dev \
&& docker-php-ext-install gmp
# redis
RUN printf "no\nno\nno\nno\nno\nyes\n" | pecl install https://pecl.php.net/get/redis-6.1.0.tgz \
&& docker-php-ext-enable redis
# pdo_pgsql pgsql
RUN apt-get install -y libpq-dev \
&& docker-php-ext-install -j$(nproc) pgsql pdo_pgsql
# mongodb
RUN printf "no\nno\nno\nauto\nauto\nauto\nauto\nauto\nauto\nno\nbundled\n" | pecl install https://pecl.php.net/get/mongodb-1.19.3.tgz \
&& docker-php-ext-enable mongodb
# xlswriter
RUN printf "yes\n" | pecl install https://pecl.php.net/get/xlswriter-1.5.5.tgz \
&& docker-php-ext-enable xlswriter
# zip
RUN apt-get install -y libzip-dev zip \
&& docker-php-ext-install zip
# protobuf
RUN pecl install https://pecl.php.net/get/protobuf-4.29.1.tgz \
&& docker-php-ext-enable protobuf
# composer
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \
&& php composer-setup.php \
&& php -r "unlink('composer-setup.php');" \
&& mv composer.phar /usr/local/bin/composer
# swow(安装后默认不加载使用php -d extension=swow在运行时加载)
RUN composer require swow/swow \
&& ./vendor/bin/swow-builder --install \
&& rm -rf vendor
RUN apt-get clean
# 创建应用目录
RUN mkdir -p /app
# 设置工作目录
WORKDIR /app