From b3fc1ce78c671a87ec2af0fbec445153ce9cb21e Mon Sep 17 00:00:00 2001 From: wandoubaba Date: Fri, 29 Nov 2024 17:01:37 +0800 Subject: [PATCH] freeswitch, php:8.1-workerman, php:8.2-workerman, php:8.3-workerman --- manual/freeswitch/Dockerfile | 89 +++++++++++++++++++++++++++++ manual/php/Dockerfile_8.1-workerman | 15 ++++- manual/php/Dockerfile_8.2-workerman | 15 ++++- manual/php/Dockerfile_8.3-workerman | 78 +++++++++++++++++++++++++ 4 files changed, 193 insertions(+), 4 deletions(-) create mode 100644 manual/freeswitch/Dockerfile create mode 100644 manual/php/Dockerfile_8.3-workerman diff --git a/manual/freeswitch/Dockerfile b/manual/freeswitch/Dockerfile new file mode 100644 index 0000000..a21629f --- /dev/null +++ b/manual/freeswitch/Dockerfile @@ -0,0 +1,89 @@ +FROM debian:bookworm + +RUN sed -i 's|http://deb.debian.org/debian/|https://mirrors.aliyun.com/debian/|g' /etc/apt/sources.list && \ + sed -i 's|http://security.debian.org/debian-security|https://mirrors.aliyun.com/debian-security|g' /etc/apt/sources.list && \ + apt-get update && apt-get upgrade -y && \ + apt-get install -y wget tar git \ + build-essential cmake automake autoconf 'libtool-bin|libtool' pkg-config \ + libssl-dev zlib1g-dev libdb-dev \ + unixodbc-dev libncurses5-dev \ + libexpat1-dev libgdbm-dev bison erlang-dev \ + libtpl-dev libtiff5-dev uuid-dev \ + libpcre3-dev libedit-dev libsqlite3-dev \ + libcurl4-openssl-dev nasm \ + libogg-dev libspeex-dev libspeexdsp-dev \ + libldns-dev \ + python3-dev \ + libavformat-dev libswscale-dev 'libswresample-dev|libavresample-dev' \ + liblua5.3-dev \ + libopus-dev \ + libpq-dev \ + libsndfile1-dev libflac-dev libogg-dev libvorbis-dev \ + libshout3-dev libmpg123-dev libmp3lame-dev \ + lsb-release + +RUN mkdir /install && cd /install && \ + git clone -b v1.10 https://github.com/signalwire/freeswitch freeswitch && \ + git clone https://github.com/signalwire/libks && \ + git clone https://github.com/freeswitch/sofia-sip && \ + git clone -b fs https://github.com/freeswitch/spandsp && \ + git clone https://github.com/signalwire/signalwire-c && \ + git clone https://github.com/unispeech/unimrcp.git && \ + git clone https://github.com/freeswitch/mod_unimrcp.git && \ + wget https://www.unimrcp.org/project/component-view/unimrcp-deps-1-6-0-tar-gz/download -O unimrcp-deps-1.6.0.tar.gz && \ + tar xvzf unimrcp-deps-1.6.0.tar.gz + +RUN cd /install/libks && \ + cmake . -DCMAKE_INSTALL_PREFIX=/usr -DWITH_LIBBACKTRACE=1 && \ + make install + +RUN cd /install/sofia-sip && \ + ./bootstrap.sh && \ + ./configure CFLAGS="-g -ggdb" --with-pic --with-glib=no --without-doxygen --disable-stun --prefix=/usr && \ + make -j`nproc --all` && \ + make install + +RUN cd /install/spandsp && \ + ./bootstrap.sh && \ + ./configure CFLAGS="-g -ggdb" --with-pic --prefix=/usr && \ + make -j`nproc --all` && \ + make install + +RUN cd /install/signalwire-c && \ + PKG_CONFIG_PATH=/usr/lib/pkgconfig cmake . -DCMAKE_INSTALL_PREFIX=/usr && \ + make install + +RUN cd /install/freeswitch && \ + sed -i 's|#formats/mod_shout|formats/mod_shout|' build/modules.conf.in && \ + ./bootstrap.sh -j && \ + ./configure && \ + make -j`nproc` && \ + make install && \ + make cd-sounds-install && \ + make cd-moh-install && \ + make uhd-sounds-install && \ + make uhd-moh-install && \ + make hd-sounds-install && \ + make hd-moh-install && \ + make sounds-install && \ + make moh-install && \ + ln -sf /usr/local/freeswitch/bin/freeswitch /usr/local/bin/ && \ + ln -sf /usr/local/freeswitch/bin/fs_cli /usr/local/bin/ + +RUN cd /install/unimrcp-deps-1.6.0/libs/apr && \ + ./configure --prefix=/usr/local/apr && \ + make && make install && \ + cd ../apr-util && \ + ./configure --prefix=/usr/local/apr --with-apr=/usr/local/apr && \ + make && make install && \ + cd ../../../unimrcp && \ + ./bootstrap && \ + ./configure --with-sofia-sip=/usr && \ + make && make install && \ + cd ../mod_unimrcp && \ + export PKG_CONFIG_PATH=/usr/local/freeswitch/lib/pkgconfig:/usr/local/unimrcp/lib/pkgconfig && \ + ./bootstrap.sh && \ + ./configure && \ + make && make install + +RUN apt-get clean diff --git a/manual/php/Dockerfile_8.1-workerman b/manual/php/Dockerfile_8.1-workerman index f9fce5f..6077571 100644 --- a/manual/php/Dockerfile_8.1-workerman +++ b/manual/php/Dockerfile_8.1-workerman @@ -22,7 +22,15 @@ RUN apt-get update && apt-get install -y \ libgmp-dev \ libmagickwand-dev \ libzookeeper-mt-dev \ - librdkafka-dev + librdkafka-dev \ + && apt-get install -y \ + libprotobuf-dev \ + && apt-get install -y \ + protobuf-compiler \ + && apt-get install -y \ + pkg-config \ + && apt-get install -y \ + git # 安装扩展 RUN docker-php-ext-configure gd --enable-gd --with-freetype --with-jpeg --with-webp \ @@ -54,7 +62,10 @@ RUN docker-php-ext-configure gd --enable-gd --with-freetype --with-jpeg --with-w && pecl install https://pecl.php.net/get/zookeeper-1.2.1.tgz \ && docker-php-ext-enable zookeeper \ && pecl install https://pecl.php.net/get/rdkafka-6.0.3.tgz \ - && docker-php-ext-enable rdkafka + && docker-php-ext-enable rdkafka \ + # 安装 gRPC 扩展 + && pecl install grpc \ + && docker-php-ext-enable grpc # 安装Composer RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \ diff --git a/manual/php/Dockerfile_8.2-workerman b/manual/php/Dockerfile_8.2-workerman index 652de53..2a1e965 100644 --- a/manual/php/Dockerfile_8.2-workerman +++ b/manual/php/Dockerfile_8.2-workerman @@ -22,7 +22,15 @@ RUN apt-get update && apt-get install -y \ libgmp-dev \ libmagickwand-dev \ libzookeeper-mt-dev \ - librdkafka-dev + librdkafka-dev \ + && apt-get install -y \ + libprotobuf-dev \ + && apt-get install -y \ + protobuf-compiler \ + && apt-get install -y \ + pkg-config \ + && apt-get install -y \ + git # 安装扩展 RUN docker-php-ext-configure gd --enable-gd --with-freetype --with-jpeg --with-webp \ @@ -54,7 +62,10 @@ RUN docker-php-ext-configure gd --enable-gd --with-freetype --with-jpeg --with-w && pecl install https://pecl.php.net/get/zookeeper-1.2.1.tgz \ && docker-php-ext-enable zookeeper \ && pecl install https://pecl.php.net/get/rdkafka-6.0.3.tgz \ - && docker-php-ext-enable rdkafka + && docker-php-ext-enable rdkafka \ + # 安装 gRPC 扩展 + && pecl install grpc \ + && docker-php-ext-enable grpc # 安装Composer RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \ diff --git a/manual/php/Dockerfile_8.3-workerman b/manual/php/Dockerfile_8.3-workerman new file mode 100644 index 0000000..50761c5 --- /dev/null +++ b/manual/php/Dockerfile_8.3-workerman @@ -0,0 +1,78 @@ +# 拉基础镜像 +FROM php:8.3.14-cli + +# 替换源 +RUN rm /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 && \ + echo 'deb http://mirror.us.oneandone.net/debian-security bookworm-security main' >> /etc/apt/sources.list && \ + echo 'deb-src http://mirror.us.oneandone.net/debian-security bookworm-security main' >> /etc/apt/sources.list && \ + echo 'deb http://mirror.us.oneandone.net/debian bookworm-updates main' >> /etc/apt/sources.list && \ + echo 'deb-src http://mirror.us.oneandone.net/debian bookworm-updates main' >> /etc/apt/sources.list && \ + echo 'deb http://mirror.us.oneandone.net/debian bookworm-backports main' >> /etc/apt/sources.list && \ + echo 'deb-src http://mirror.us.oneandone.net/debian bookworm-backports main' >> /etc/apt/sources.list + +# 安装一些依赖 +RUN apt-get update && apt-get install -y \ + libfreetype6-dev libjpeg62-turbo-dev \ + libpng-dev libwebp-dev zlib1g-dev \ + libzip-dev zip \ + libevent-dev libssl-dev \ + lsb-release libpq-dev \ + libgmp-dev \ + librdkafka-dev \ + && apt-get install -y \ + libprotobuf-dev \ + && apt-get install -y \ + protobuf-compiler \ + && apt-get install -y \ + pkg-config \ + && apt-get install -y \ + git + +# 安装扩展 +RUN docker-php-ext-configure gd --enable-gd --with-freetype --with-jpeg --with-webp \ + && docker-php-ext-install -j$(nproc) gd \ + && docker-php-ext-install exif \ + && docker-php-ext-install opcache \ + && docker-php-ext-install pdo_mysql \ + && docker-php-ext-install mysqli \ + && docker-php-ext-install zip \ + && docker-php-ext-install pcntl \ + && docker-php-ext-install fileinfo \ + && pecl install https://pecl.php.net/get/redis-6.1.0.tgz \ + && docker-php-ext-enable redis \ + && docker-php-ext-install sockets \ + && 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 \ + && docker-php-ext-install -j$(nproc) pgsql pdo_pgsql \ + && pecl install https://pecl.php.net/get/mongodb-1.19.3.tgz \ + && docker-php-ext-enable mongodb \ + && docker-php-ext-install -j$(nproc) gmp \ + && docker-php-ext-install bcmath \ + && docker-php-ext-enable bcmath \ + && pecl install https://pecl.php.net/get/xlswriter-1.5.5.tgz \ + && docker-php-ext-enable xlswriter \ + && pecl install https://pecl.php.net/get/rdkafka-6.0.3.tgz \ + && docker-php-ext-enable rdkafka \ + # 安装 gRPC 扩展 + && pecl install grpc \ + && docker-php-ext-enable grpc + +# 安装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 \ + && composer config -g repo.packagist composer https://mirrors.tencent.com/composer/ + +# 安装swow扩展 +# RUN composer require swow/swow && ./vendor/bin/swow-builder --install + +# 创建应用目录 +RUN mkdir -p /app + +# 设置工作目录 +WORKDIR /app