Browse Source

[php] Laravel update to v 11 (#9200)

* Update Laravel to v 11

* Update and clean dockerfiles

* Fix pecl

* Update dockerfile and remove extra composer.json

* Clean dockerfile
Joan Miquel 1 year ago
parent
commit
3d5d29ef7d

+ 1 - 1
frameworks/PHP/laravel/composer.json

@@ -8,7 +8,7 @@
     ],
     "license": "MIT",
     "require": {
-        "laravel/framework": "^10"
+        "laravel/framework": "^11"
     },
     "config": {
         "optimize-autoloader": true,

+ 1 - 1
frameworks/PHP/laravel/deploy/conf/php.ini

@@ -1767,7 +1767,7 @@ ldap.max_links = -1
 opcache.enable=1
 
 ; Determines if Zend OPCache is enabled for the CLI version of PHP
-;opcache.enable_cli=0
+opcache.enable_cli=1
 
 ; The OPcache shared memory storage size.
 ;opcache.memory_consumption=128

+ 0 - 58
frameworks/PHP/laravel/deploy/workerman/composer.json

@@ -1,58 +0,0 @@
-{
-    "name": "laravel/laravel",
-    "type": "project",
-    "description": "The Laravel Framework.",
-    "keywords": [
-        "framework",
-        "laravel"
-    ],
-    "license": "MIT",
-    "require": {
-        "php": "^8.0",
-        "laravel/framework": "^8.0",
-        "joanhey/adapterman": "^0.6"
-    },
-    "require-dev": {
-        "facade/ignition": "^2.3.6",
-        "fzaninotto/faker": "^1.9.1",
-        "mockery/mockery": "^1.3.1",
-        "nunomaduro/collision": "^5.0",
-        "phpunit/phpunit": "^9.3"
-    },
-    "config": {
-        "optimize-autoloader": true,
-        "preferred-install": "dist",
-        "sort-packages": true
-    },
-    "extra": {
-        "laravel": {
-            "dont-discover": []
-        }
-    },
-    "autoload": {
-        "psr-4": {
-            "App\\": "app/"
-        }
-    },
-    "autoload-dev": {
-        "psr-4": {
-            "Tests\\": "tests/"
-        }
-    },
-    "minimum-stability": "dev",
-    "prefer-stable": true,
-    "scripts": {
-        "post-autoload-dump": [
-            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
-            "@php artisan package:discover --ansi"
-        ],
-        "post-root-package-install": [
-            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
-        ],
-        "post-create-project-cmd": [
-            "@php artisan key:generate --ansi"
-        ]
-    }
-}
-
-

+ 5 - 1
frameworks/PHP/laravel/laravel-laravel-s.dockerfile

@@ -9,7 +9,11 @@ RUN echo "opcache.jit_buffer_size=128M" >> /usr/local/etc/php/conf.d/docker-php-
 WORKDIR /laravel
 COPY --link . .
 
-RUN mkdir -p /laravel/bootstrap/cache /laravel/storage/logs /laravel/storage/framework/sessions /laravel/storage/framework/views /laravel/storage/framework/cache
+RUN mkdir -p bootstrap/cache \
+            storage/logs \
+            storage/framework/sessions \
+            storage/framework/views \
+            storage/framework/cache
 
 COPY --link deploy/laravel-s/composer.json .
 

+ 13 - 13
frameworks/PHP/laravel/laravel-octane-frankenphp.dockerfile

@@ -1,25 +1,25 @@
 FROM dunglas/frankenphp
  
 RUN install-php-extensions \
-    pcntl \
+    intl \
+	opcache \
+	pcntl \
     pdo_mysql \
-	intl \
-	zip \
-	opcache > /dev/null
+	zip > /dev/null
  
-COPY . /app
+COPY --link . /app/
 
-COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
+COPY --from=composer --link /usr/bin/composer /usr/local/bin/composer
 
-RUN mkdir -p /app/bootstrap/cache /app/storage/logs /app/storage/framework/sessions /app/storage/framework/views /app/storage/framework/cache
-RUN chmod -R 777 /app
+RUN mkdir -p bootstrap/cache \
+            storage/logs \
+            storage/framework/sessions \
+            storage/framework/views \
+            storage/framework/cache
 
-COPY deploy/conf/php.ini  /usr/local/etc/php
-
-RUN composer require laravel/octane guzzlehttp/guzzle
-
-RUN composer install --optimize-autoloader --classmap-authoritative --no-dev --quiet
+COPY --link deploy/conf/php.ini  /usr/local/etc/php
 
+RUN composer require laravel/octane guzzlehttp/guzzle --update-no-dev --no-scripts --quiet
 RUN php artisan optimize
 
 RUN frankenphp -v

+ 5 - 1
frameworks/PHP/laravel/laravel-roadrunner.dockerfile

@@ -9,7 +9,11 @@ RUN echo "opcache.enable_cli=1" >> /usr/local/etc/php/conf.d/docker-php-ext-opca
 WORKDIR /laravel
 COPY --link . .
 
-RUN mkdir -p /laravel/bootstrap/cache /laravel/storage/logs /laravel/storage/framework/sessions /laravel/storage/framework/views /laravel/storage/framework/cache
+RUN mkdir -p bootstrap/cache \
+            storage/logs \
+            storage/framework/sessions \
+            storage/framework/views \
+            storage/framework/cache
 
 RUN apt-get update > /dev/null && \
     apt-get install -yqq curl unzip > /dev/null

+ 5 - 1
frameworks/PHP/laravel/laravel-swoole.dockerfile

@@ -9,7 +9,11 @@ RUN echo "opcache.jit_buffer_size=128M" >> /usr/local/etc/php/conf.d/docker-php-
 WORKDIR /laravel
 COPY --link . .
 
-RUN mkdir -p /laravel/bootstrap/cache  /laravel/storage/framework/sessions /laravel/storage/framework/views /laravel/storage/framework/cache
+RUN mkdir -p bootstrap/cache \
+            storage/logs \
+            storage/framework/sessions \
+            storage/framework/views \
+            storage/framework/cache
 
 COPY --link deploy/swoole/composer.json .
 

+ 13 - 11
frameworks/PHP/laravel/laravel-workerman.dockerfile

@@ -1,4 +1,4 @@
-FROM ubuntu:22.04
+FROM ubuntu:24.04
 
 ARG DEBIAN_FRONTEND=noninteractive
 
@@ -9,23 +9,25 @@ RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php > /dev/null && \
 RUN apt-get install -yqq git unzip \
     php8.3-cli php8.3-mysql 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 --link /usr/bin/composer /usr/local/bin/composer
 
 RUN apt-get install -y php-pear php8.3-dev libevent-dev > /dev/null
 RUN pecl install event-3.1.3 > /dev/null && echo "extension=event.so" > /etc/php/8.3/cli/conf.d/event.ini
 
-ADD ./ /laravel
 WORKDIR /laravel
+COPY --link . .
 
-EXPOSE 8080
-
-RUN mkdir -p /laravel/bootstrap/cache /laravel/storage/logs /laravel/storage/framework/sessions /laravel/storage/framework/views /laravel/storage/framework/cache
-RUN chmod -R 777 /laravel
+RUN mkdir -p bootstrap/cache \
+            storage/logs \
+            storage/framework/sessions \
+            storage/framework/views \
+            storage/framework/cache
 
-COPY deploy/workerman/composer.json ./
-RUN composer install --optimize-autoloader --classmap-authoritative --no-dev --quiet
+RUN composer require joanhey/adapterman --update-no-dev --no-scripts --quiet
 RUN php artisan optimize
 
-COPY deploy/conf/cli-php.ini /etc/php/8.3/cli/php.ini
+COPY --link deploy/conf/cli-php.ini /etc/php/8.3/cli/php.ini
+
+EXPOSE 8080
 
-CMD php server-man.php start
+ENTRYPOINT [ "php", "server-man.php", "start" ]

+ 11 - 10
frameworks/PHP/laravel/laravel.dockerfile

@@ -1,4 +1,4 @@
-FROM ubuntu:22.04
+FROM ubuntu:24.04
 
 ARG DEBIAN_FRONTEND=noninteractive
 
@@ -7,19 +7,21 @@ 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
 
 RUN apt-get install -yqq nginx git unzip \
-    php8.3-cli php8.3-fpm php8.3-mysql  php8.3-mbstring php8.3-xml php8.3-dev > /dev/null
+    php8.3-cli php8.3-fpm php8.3-mysql  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 --link /usr/bin/composer /usr/local/bin/composer
 
-COPY deploy/conf/* /etc/php/8.3/fpm/
-
-ADD ./ /laravel
+COPY --link deploy/conf/* /etc/php/8.3/fpm/
 WORKDIR /laravel
+COPY --link . .
 
 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 -p /laravel/bootstrap/cache /laravel/storage/logs /laravel/storage/framework/sessions /laravel/storage/framework/views /laravel/storage/framework/cache
-RUN chmod -R 777 /laravel
+RUN mkdir -p bootstrap/cache \
+            storage/logs \
+            storage/framework/sessions \
+            storage/framework/views \
+            storage/framework/cache
 
 RUN composer install --optimize-autoloader --classmap-authoritative --no-dev --quiet
 RUN php artisan optimize
@@ -29,6 +31,5 @@ EXPOSE 8080
 # Uncomment next line for Laravel console error logging to be viewable in docker logs
 # RUN echo "catch_workers_output = yes" >> /etc/php/8.3/fpm/php-fpm.conf
 
-RUN mkdir -p /run/php
-CMD /usr/sbin/php-fpm8.3 --fpm-config /etc/php/8.3/fpm/php-fpm.conf && \
+CMD service php8.3-fpm start && \
     nginx -c /laravel/deploy/nginx.conf