From 81e0dabcc46e5aa02741c13cb02fe169ea02b053 Mon Sep 17 00:00:00 2001
From: Jan-Hendrik Willms <tleilax+github@gmail.com>
Date: Wed, 22 May 2024 14:52:01 +0200
Subject: [PATCH] add jit

---
 config/docker-files/7.2-Dockerfile |  6 +++++-
 config/docker-files/7.3-Dockerfile |  6 +++++-
 config/docker-files/7.4-Dockerfile |  6 +++++-
 config/docker-files/8.0-Dockerfile |  6 +++++-
 config/docker-files/8.1-Dockerfile |  6 +++++-
 config/docker-files/8.2-Dockerfile |  6 +++++-
 config/docker-files/8.3-Dockerfile |  6 +++++-
 config/php.ini                     |  6 ++++++
 lib/Commands/Docker/Build.php      |  3 ++-
 lib/SupportedPHPVersions.php       | 14 +++++++-------
 10 files changed, 50 insertions(+), 15 deletions(-)

diff --git a/config/docker-files/7.2-Dockerfile b/config/docker-files/7.2-Dockerfile
index 96071ab..8c86e12 100644
--- a/config/docker-files/7.2-Dockerfile
+++ b/config/docker-files/7.2-Dockerfile
@@ -26,12 +26,16 @@ RUN locale-gen de_DE.UTF-8 \
 
 # Install php extensions
 RUN docker-php-ext-configure gd --with-jpeg-dir --with-freetype-dir --with-webp-dir
-RUN docker-php-ext-install -j$(nproc) gd gettext intl mysqli pdo_mysql pdo_pgsql soap zip
+RUN docker-php-ext-install -j$(nproc) gd gettext intl mysqli opcache pdo_mysql pdo_pgsql soap zip
 
 # Install Memcached & redis
 RUN pecl install memcached redis \
     && docker-php-ext-enable memcached redis
 
+# Cleanup
+RUN docker-php-source delete \
+    && apt-get autoremove --purge -y && apt-get autoclean -y && apt-get clean -y
+
 # Enable PS in gs
 RUN sed -r -i_bak 's/rights="none" pattern="([EX]?PS[23]*|PDF)"/rights="read | write" pattern="\1"/' \
         /etc/ImageMagick-6/policy.xml
diff --git a/config/docker-files/7.3-Dockerfile b/config/docker-files/7.3-Dockerfile
index 3c1ff34..2355daa 100644
--- a/config/docker-files/7.3-Dockerfile
+++ b/config/docker-files/7.3-Dockerfile
@@ -26,12 +26,16 @@ RUN locale-gen de_DE.UTF-8 \
 
 # Install php extensions
 RUN docker-php-ext-configure gd --with-jpeg-dir --with-freetype-dir --with-webp-dir
-RUN docker-php-ext-install -j$(nproc) gd gettext intl mysqli pdo_mysql pdo_pgsql soap zip
+RUN docker-php-ext-install -j$(nproc) gd gettext intl mysqli opcache pdo_mysql pdo_pgsql soap zip
 
 # Install Memcached
 RUN pecl install memcached redis \
     && docker-php-ext-enable memcached redis
 
+# Cleanup
+RUN docker-php-source delete \
+    && apt-get autoremove --purge -y && apt-get autoclean -y && apt-get clean -y
+
 # Enable PS in gs
 RUN sed -r -i_bak 's/rights="none" pattern="([EX]?PS[23]*|PDF)"/rights="read | write" pattern="\1"/' \
         /etc/ImageMagick-6/policy.xml
diff --git a/config/docker-files/7.4-Dockerfile b/config/docker-files/7.4-Dockerfile
index fb3afe0..2e01471 100644
--- a/config/docker-files/7.4-Dockerfile
+++ b/config/docker-files/7.4-Dockerfile
@@ -26,12 +26,16 @@ RUN locale-gen de_DE.UTF-8 \
 
 # Install php extensions
 RUN docker-php-ext-configure gd --with-jpeg --with-freetype --with-webp
-RUN docker-php-ext-install -j$(nproc) gd gettext intl pdo_mysql pdo_pgsql soap zip
+RUN docker-php-ext-install -j$(nproc) gd gettext intl opcache pdo_mysql pdo_pgsql soap zip
 
 # Install Memcached & redis
 RUN pecl install memcached redis \
     && docker-php-ext-enable memcached redis
 
+# Cleanup
+RUN docker-php-source delete \
+    && apt-get autoremove --purge -y && apt-get autoclean -y && apt-get clean -y
+
 # Enable PS in gs
 RUN sed -r -i_bak 's/rights="none" pattern="([EX]?PS[23]*|PDF)"/rights="read | write" pattern="\1"/' \
         /etc/ImageMagick-6/policy.xml
diff --git a/config/docker-files/8.0-Dockerfile b/config/docker-files/8.0-Dockerfile
index 9fd1fc6..3d56102 100644
--- a/config/docker-files/8.0-Dockerfile
+++ b/config/docker-files/8.0-Dockerfile
@@ -26,12 +26,16 @@ RUN locale-gen de_DE.UTF-8 \
 
 # Install php extensions
 RUN docker-php-ext-configure gd --with-jpeg --with-freetype --with-webp
-RUN docker-php-ext-install -j$(nproc) gd gettext intl mysqli pdo_mysql pdo_pgsql soap zip
+RUN docker-php-ext-install -j$(nproc) gd gettext intl mysqli opcache pdo_mysql pdo_pgsql soap zip
 
 # Install Memcached & redis
 RUN pecl install memcached redis \
     && docker-php-ext-enable memcached redis
 
+# Cleanup
+RUN docker-php-source delete
+    && apt-get autoremove --purge -y && apt-get autoclean -y && apt-get clean -y
+
 # Enable PS in gs
 RUN sed -r -i_bak 's/rights="none" pattern="([EX]?PS[23]*|PDF)"/rights="read | write" pattern="\1"/' \
         /etc/ImageMagick-6/policy.xml
diff --git a/config/docker-files/8.1-Dockerfile b/config/docker-files/8.1-Dockerfile
index b6eb7da..52544cb 100644
--- a/config/docker-files/8.1-Dockerfile
+++ b/config/docker-files/8.1-Dockerfile
@@ -26,12 +26,16 @@ RUN locale-gen de_DE.UTF-8 \
 
 # Install php extensions
 RUN docker-php-ext-configure gd --with-jpeg --with-freetype --with-webp
-RUN docker-php-ext-install -j$(nproc) gd gettext intl mysqli pdo_mysql pdo_pgsql soap zip
+RUN docker-php-ext-install -j$(nproc) gd gettext intl mysqli opcache pdo_mysql pdo_pgsql soap zip
 
 # Install Memcached & redis
 RUN pecl install memcached redis \
     && docker-php-ext-enable memcached redis
 
+# Cleanup
+RUN docker-php-source delete \
+    && apt-get autoremove --purge -y && apt-get autoclean -y && apt-get clean -y
+
 # Enable PS in gs
 RUN sed -r -i_bak 's/rights="none" pattern="([EX]?PS[23]*|PDF)"/rights="read | write" pattern="\1"/' \
         /etc/ImageMagick-6/policy.xml
diff --git a/config/docker-files/8.2-Dockerfile b/config/docker-files/8.2-Dockerfile
index 69b9d25..27a735b 100644
--- a/config/docker-files/8.2-Dockerfile
+++ b/config/docker-files/8.2-Dockerfile
@@ -26,12 +26,16 @@ RUN locale-gen de_DE.UTF-8 \
 
 # Install php extensions
 RUN docker-php-ext-configure gd --with-jpeg --with-freetype --with-webp
-RUN docker-php-ext-install -j$(nproc) gd gettext intl mysqli pdo_mysql pdo_pgsql soap zip
+RUN docker-php-ext-install -j$(nproc) gd gettext intl mysqli opcache pdo_mysql pdo_pgsql soap zip
 
 # Install Memcached & redis
 RUN pecl install memcached redis \
     && docker-php-ext-enable memcached redis
 
+# Cleanup
+RUN docker-php-source delete \
+    && apt-get autoremove --purge -y && apt-get autoclean -y && apt-get clean -y
+
 # Enable PS in gs
 RUN sed -r -i_bak 's/rights="none" pattern="([EX]?PS[23]*|PDF)"/rights="read | write" pattern="\1"/' \
         /etc/ImageMagick-6/policy.xml
diff --git a/config/docker-files/8.3-Dockerfile b/config/docker-files/8.3-Dockerfile
index 7f8df20..16821dd 100644
--- a/config/docker-files/8.3-Dockerfile
+++ b/config/docker-files/8.3-Dockerfile
@@ -27,12 +27,16 @@ RUN locale-gen de_DE.UTF-8 \
 
 # Install php extensions
 RUN docker-php-ext-configure gd --with-jpeg --with-freetype --with-webp
-RUN docker-php-ext-install -j$(nproc) gd gettext intl mysqli pdo_mysql pdo_pgsql soap zip
+RUN docker-php-ext-install -j$(nproc) gd gettext intl mysqli opcache pdo_mysql pdo_pgsql soap zip
 
 # Install Memcached and redis
 RUN pecl install memcached redis \
     && docker-php-ext-enable memcached redis
 
+# Cleanup
+RUN docker-php-source delete \
+    && apt-get autoremove --purge -y && apt-get autoclean -y && apt-get clean -y
+
 # Enable PS in gs
 RUN sed -r -i_bak 's/rights="none" pattern="([EX]?PS[23]*|PDF)"/rights="read | write" pattern="\1"/' \
         /etc/ImageMagick-6/policy.xml
diff --git a/config/php.ini b/config/php.ini
index 87fc366..610f462 100644
--- a/config/php.ini
+++ b/config/php.ini
@@ -3,3 +3,9 @@ max_execution_time=300
 upload_max_filesize=8M
 post_max_size=9M
 error_reporting=22519
+
+zend_extension=opcache.so
+opcache.enable=1
+opcache.enable_cli=1
+opcache.jit=tracing
+opcache.jit_buffer_size=100M
diff --git a/lib/Commands/Docker/Build.php b/lib/Commands/Docker/Build.php
index 3ba1047..bfbc10b 100644
--- a/lib/Commands/Docker/Build.php
+++ b/lib/Commands/Docker/Build.php
@@ -14,6 +14,7 @@ final class Build extends DockerComposeCommand
         $this->setName('docker:build');
         $this->setDescription('Build containers');
     }
+
     protected function getDockerComposeCommand(): array
     {
         $dockerRunning = $this->isDockerRunning();
@@ -46,4 +47,4 @@ final class Build extends DockerComposeCommand
 
         return Command::SUCCESS;
     }
-}
\ No newline at end of file
+}
diff --git a/lib/SupportedPHPVersions.php b/lib/SupportedPHPVersions.php
index 1b70aee..6309a86 100644
--- a/lib/SupportedPHPVersions.php
+++ b/lib/SupportedPHPVersions.php
@@ -4,13 +4,13 @@ namespace Studip\Dockerized;
 final class SupportedPHPVersions
 {
     private const CONFIGURATION = [
-        '7.2' => [8072, 18072],
-        '7.3' => [8073, 18073],
-        '7.4' => [8074, 18074],
-        '8.0' => [8080, 18080],
-        '8.1' => [8081, 18081],
-        '8.2' => [8082, 18082],
-        '8.3' => [8083, 18083],
+        '7.2' => [8072, 8872],
+        '7.3' => [8073, 8873],
+        '7.4' => [8074, 8874],
+        '8.0' => [8080, 8880],
+        '8.1' => [8081, 8881],
+        '8.2' => [8082, 8882],
+        '8.3' => [8083, 8883],
     ];
 
     private const DEFAULT = ['7.4', '8.1', '8.3'];
-- 
GitLab