Browse Source

[php] Symfony update to PHP 8.3 (#8583)

Joan Miquel 1 year ago
parent
commit
0b8566bce4

+ 1 - 1
frameworks/PHP/symfony/server.php

@@ -12,7 +12,7 @@ $http_worker                = new Worker('http://0.0.0.0:8080');
 $http_worker->count         = (int) shell_exec('nproc') * 4;
 $http_worker->count         = (int) shell_exec('nproc') * 4;
 $http_worker->name          = 'AdapterMan-Symfony';
 $http_worker->name          = 'AdapterMan-Symfony';
 
 
-$http_worker->onWorkerStart = function () {
+$http_worker->onWorkerStart = static function () {
     Header::$date = gmdate('D, d M Y H:i:s').' GMT';
     Header::$date = gmdate('D, d M Y H:i:s').' GMT';
     Timer::add(1, function() {
     Timer::add(1, function() {
          Header::$date = gmdate('D, d M Y H:i:s').' GMT';
          Header::$date = gmdate('D, d M Y H:i:s').' GMT';

+ 1 - 1
frameworks/PHP/symfony/start.php

@@ -5,7 +5,7 @@ use Symfony\Component\Dotenv\Dotenv;
 use Symfony\Component\ErrorHandler\Debug;
 use Symfony\Component\ErrorHandler\Debug;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Request;
 
 
-require __DIR__.'/vendor/autoload.php';
+//require __DIR__.'/vendor/autoload.php';
 
 
 (new Dotenv())->bootEnv(__DIR__.'/.env');
 (new Dotenv())->bootEnv(__DIR__.'/.env');
 
 

+ 7 - 7
frameworks/PHP/symfony/symfony-mysql.dockerfile

@@ -8,17 +8,17 @@ RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php > /dev/null && \
     apt-get update -yqq > /dev/null && apt-get upgrade -yqq > /dev/null
     apt-get update -yqq > /dev/null && apt-get upgrade -yqq > /dev/null
 
 
 RUN apt-get install -yqq nginx git unzip curl \
 RUN apt-get install -yqq nginx git unzip curl \
-    php8.2-cli php8.2-fpm php8.2-mysql  \
-    php8.2-mbstring php8.2-xml php8.2-curl php8.2-dev > /dev/null
+    php8.3-cli php8.3-fpm php8.3-mysql  \
+    php8.3-mbstring php8.3-xml php8.3-curl php8.3-dev > /dev/null
 
 
 COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
 COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
 
 
-COPY deploy/conf/* /etc/php/8.2/fpm/
+COPY deploy/conf/* /etc/php/8.3/fpm/
 
 
 ADD . /symfony
 ADD . /symfony
 WORKDIR /symfony
 WORKDIR /symfony
 
 
-RUN if [ $(nproc) = 2 ]; then sed -i "s|pm.max_children = 1024|pm.max_children = 512|g" /etc/php/8.2/fpm/php-fpm.conf ; fi;
+RUN if [ $(nproc) = 2 ]; then sed -i "s|pm.max_children = 1024|pm.max_children = 512|g" /etc/php/8.3/fpm/php-fpm.conf ; fi;
 
 
 RUN mkdir -m 777 -p /symfony/var/cache/{dev,prod} /symfony/var/log
 RUN mkdir -m 777 -p /symfony/var/cache/{dev,prod} /symfony/var/log
 
 
@@ -26,14 +26,14 @@ ENV COMPOSER_ALLOW_SUPERUSER=1
 RUN composer install --optimize-autoloader --classmap-authoritative --no-dev --quiet --no-scripts
 RUN composer install --optimize-autoloader --classmap-authoritative --no-dev --quiet --no-scripts
 RUN cp deploy/mysql/.env . && composer dump-env prod && bin/console cache:clear
 RUN cp deploy/mysql/.env . && composer dump-env prod && bin/console cache:clear
 
 
-RUN echo "opcache.preload=/symfony/var/cache/prod/App_KernelProdContainer.preload.php" >> /etc/php/8.2/fpm/php.ini
+RUN echo "opcache.preload=/symfony/var/cache/prod/App_KernelProdContainer.preload.php" >> /etc/php/8.3/fpm/php.ini
 
 
 
 
 EXPOSE 8080
 EXPOSE 8080
 
 
 # Uncomment next line for Laravel console error logging to be viewable in docker logs
 # Uncomment next line for Laravel console error logging to be viewable in docker logs
-# RUN echo "catch_workers_output = yes" >> /etc/php/8.2/fpm/php-fpm.conf
+# RUN echo "catch_workers_output = yes" >> /etc/php/8.3/fpm/php-fpm.conf
 
 
 RUN mkdir -p /run/php
 RUN mkdir -p /run/php
-CMD /usr/sbin/php-fpm8.2 --fpm-config /etc/php/8.2/fpm/php-fpm.conf && \
+CMD service php8.3-fpm start && \
     nginx -c /symfony/deploy/nginx.conf
     nginx -c /symfony/deploy/nginx.conf

+ 7 - 7
frameworks/PHP/symfony/symfony-raw.dockerfile

@@ -7,17 +7,17 @@ RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php > /dev/null && \
     apt-get update -yqq > /dev/null && apt-get upgrade -yqq > /dev/null
     apt-get update -yqq > /dev/null && apt-get upgrade -yqq > /dev/null
 
 
 RUN apt-get install -yqq nginx git unzip curl \
 RUN apt-get install -yqq nginx git unzip curl \
-    php8.2-cli php8.2-fpm php8.2-pgsql  \
-    php8.2-mbstring php8.2-xml php8.2-curl > /dev/null
+    php8.3-cli php8.3-fpm php8.3-pgsql  \
+    php8.3-mbstring php8.3-xml php8.3-curl > /dev/null
 
 
 COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
 COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
 
 
-COPY deploy/conf/* /etc/php/8.2/fpm/
+COPY deploy/conf/* /etc/php/8.3/fpm/
 
 
 ADD . /symfony
 ADD . /symfony
 WORKDIR /symfony
 WORKDIR /symfony
 
 
-RUN if [ $(nproc) = 2 ]; then sed -i "s|pm.max_children = 1024|pm.max_children = 512|g" /etc/php/8.2/fpm/php-fpm.conf ; fi;
+RUN if [ $(nproc) = 2 ]; then sed -i "s|pm.max_children = 1024|pm.max_children = 512|g" /etc/php/8.3/fpm/php-fpm.conf ; fi;
 
 
 RUN mkdir -m 777 -p /symfony/var/cache/{dev,prod} /symfony/var/log
 RUN mkdir -m 777 -p /symfony/var/cache/{dev,prod} /symfony/var/log
 
 
@@ -25,13 +25,13 @@ ENV COMPOSER_ALLOW_SUPERUSER=1
 RUN composer install --optimize-autoloader --classmap-authoritative --no-dev --quiet --no-scripts
 RUN composer install --optimize-autoloader --classmap-authoritative --no-dev --quiet --no-scripts
 RUN cp deploy/postgresql/.env . && composer dump-env prod && bin/console cache:clear
 RUN cp deploy/postgresql/.env . && composer dump-env prod && bin/console cache:clear
 
 
-RUN echo "opcache.preload=/symfony/var/cache/prod/App_KernelProdContainer.preload.php" >> /etc/php/8.2/fpm/php.ini
+RUN echo "opcache.preload=/symfony/var/cache/prod/App_KernelProdContainer.preload.php" >> /etc/php/8.3/fpm/php.ini
 
 
 EXPOSE 8080
 EXPOSE 8080
 
 
 # Uncomment next line for Laravel console error logging to be viewable in docker logs
 # Uncomment next line for Laravel console error logging to be viewable in docker logs
-# RUN echo "catch_workers_output = yes" >> /etc/php/8.2/fpm/php-fpm.conf
+# RUN echo "catch_workers_output = yes" >> /etc/php/8.3/fpm/php-fpm.conf
 
 
 RUN mkdir -p /run/php
 RUN mkdir -p /run/php
-CMD /usr/sbin/php-fpm8.2 --fpm-config /etc/php/8.2/fpm/php-fpm.conf && \
+CMD service php8.3-fpm start && \
     nginx -c /symfony/deploy/nginx.conf
     nginx -c /symfony/deploy/nginx.conf

+ 1 - 1
frameworks/PHP/symfony/symfony-swoole.dockerfile

@@ -1,4 +1,4 @@
-FROM php:8.2-cli
+FROM php:8.3-cli
 
 
 RUN pecl install swoole > /dev/null && \
 RUN pecl install swoole > /dev/null && \
     docker-php-ext-enable swoole
     docker-php-ext-enable swoole

+ 4 - 4
frameworks/PHP/symfony/symfony-workerman.dockerfile

@@ -7,12 +7,12 @@ RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php > /dev/null && \
     apt-get update -yqq > /dev/null && apt-get upgrade -yqq > /dev/null
     apt-get update -yqq > /dev/null && apt-get upgrade -yqq > /dev/null
 
 
 RUN apt-get install -yqq git unzip \
 RUN apt-get install -yqq git unzip \
-    php8.2-cli php8.2-pgsql php8.2-mbstring php8.2-xml php8.2-curl > /dev/null
+    php8.3-cli php8.3-pgsql php8.3-mbstring php8.3-xml php8.3-curl > /dev/null
 
 
 COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
 COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
 
 
-RUN apt-get install -y php-pear php8.2-dev libevent-dev > /dev/null
-RUN pecl install event-3.0.8 > /dev/null && echo "extension=event.so" > /etc/php/8.2/cli/conf.d/event.ini
+RUN apt-get install -y php-pear php8.3-dev libevent-dev > /dev/null
+RUN pecl install event-3.0.8 > /dev/null && echo "extension=event.so" > /etc/php/8.3/cli/conf.d/event.ini
 
 
 EXPOSE 8080
 EXPOSE 8080
 
 
@@ -25,6 +25,6 @@ ENV COMPOSER_ALLOW_SUPERUSER=1
 RUN composer install --optimize-autoloader --classmap-authoritative --no-dev --quiet --no-scripts
 RUN composer install --optimize-autoloader --classmap-authoritative --no-dev --quiet --no-scripts
 RUN cp deploy/postgresql/.env . && composer dump-env prod && bin/console cache:clear
 RUN cp deploy/postgresql/.env . && composer dump-env prod && bin/console cache:clear
 
 
-COPY deploy/conf/cli-php.ini /etc/php/8.2/cli/php.ini
+COPY deploy/conf/cli-php.ini /etc/php/8.3/cli/php.ini
 
 
 CMD php server.php start
 CMD php server.php start

+ 7 - 7
frameworks/PHP/symfony/symfony.dockerfile

@@ -7,17 +7,17 @@ RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php > /dev/null && \
     apt-get update -yqq > /dev/null && apt-get upgrade -yqq > /dev/null
     apt-get update -yqq > /dev/null && apt-get upgrade -yqq > /dev/null
 
 
 RUN apt-get install -yqq nginx git unzip curl \
 RUN apt-get install -yqq nginx git unzip curl \
-    php8.2-cli php8.2-fpm php8.2-pgsql  \
-    php8.2-mbstring php8.2-xml php8.2-curl php8.2-dev > /dev/null
+    php8.3-cli php8.3-fpm php8.3-pgsql  \
+    php8.3-mbstring php8.3-xml php8.3-curl php8.3-dev > /dev/null
 
 
 COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
 COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
 
 
-COPY deploy/conf/* /etc/php/8.2/fpm/
+COPY deploy/conf/* /etc/php/8.3/fpm/
 
 
 ADD . /symfony
 ADD . /symfony
 WORKDIR /symfony
 WORKDIR /symfony
 
 
-RUN if [ $(nproc) = 2 ]; then sed -i "s|pm.max_children = 1024|pm.max_children = 512|g" /etc/php/8.2/fpm/php-fpm.conf ; fi;
+RUN if [ $(nproc) = 2 ]; then sed -i "s|pm.max_children = 1024|pm.max_children = 512|g" /etc/php/8.3/fpm/php-fpm.conf ; fi;
 
 
 RUN mkdir -m 777 -p /symfony/var/cache/{dev,prod} /symfony/var/log
 RUN mkdir -m 777 -p /symfony/var/cache/{dev,prod} /symfony/var/log
 
 
@@ -25,13 +25,13 @@ ENV COMPOSER_ALLOW_SUPERUSER=1
 RUN composer install --optimize-autoloader --classmap-authoritative --no-dev --quiet --no-scripts
 RUN composer install --optimize-autoloader --classmap-authoritative --no-dev --quiet --no-scripts
 RUN cp deploy/postgresql/.env . && composer dump-env prod && bin/console cache:clear
 RUN cp deploy/postgresql/.env . && composer dump-env prod && bin/console cache:clear
 
 
-RUN echo "opcache.preload=/symfony/var/cache/prod/App_KernelProdContainer.preload.php" >> /etc/php/8.2/fpm/php.ini
+RUN echo "opcache.preload=/symfony/var/cache/prod/App_KernelProdContainer.preload.php" >> /etc/php/8.3/fpm/php.ini
 
 
 EXPOSE 8080
 EXPOSE 8080
 
 
 # Uncomment next line for Laravel console error logging to be viewable in docker logs
 # Uncomment next line for Laravel console error logging to be viewable in docker logs
-# RUN echo "catch_workers_output = yes" >> /etc/php/8.2/fpm/php-fpm.conf
+# RUN echo "catch_workers_output = yes" >> /etc/php/8.3/fpm/php-fpm.conf
 
 
 RUN mkdir -p /run/php
 RUN mkdir -p /run/php
-CMD /usr/sbin/php-fpm8.2 --fpm-config /etc/php/8.2/fpm/php-fpm.conf && \
+CMD service php8.3-fpm start && \
     nginx -c /symfony/deploy/nginx.conf
     nginx -c /symfony/deploy/nginx.conf