Browse Source

51.0.0 (Magento 2.4.8 support) (#1315)

Mark Shust 7 months ago
parent
commit
5c41a1cba2

+ 1 - 1
.github/workflows/build-nginx-1-24.yml

@@ -33,4 +33,4 @@ jobs:
           push: true
           push: true
           tags: |
           tags: |
             markoshust/magento-nginx:1.24
             markoshust/magento-nginx:1.24
-            markoshust/magento-nginx:1.24-0
+            markoshust/magento-nginx:1.24-1

+ 1 - 1
.github/workflows/build-php-8-1.yml

@@ -33,4 +33,4 @@ jobs:
           push: true
           push: true
           tags: |
           tags: |
             markoshust/magento-php:8.1-fpm
             markoshust/magento-php:8.1-fpm
-            markoshust/magento-php:8.1-fpm-7
+            markoshust/magento-php:8.1-fpm-8

+ 1 - 1
.github/workflows/build-php-8-2.yml

@@ -33,4 +33,4 @@ jobs:
           push: true
           push: true
           tags: |
           tags: |
             markoshust/magento-php:8.2-fpm
             markoshust/magento-php:8.2-fpm
-            markoshust/magento-php:8.2-fpm-6
+            markoshust/magento-php:8.2-fpm-7

+ 1 - 1
.github/workflows/build-php-8-3.yml

@@ -33,4 +33,4 @@ jobs:
           push: true
           push: true
           tags: |
           tags: |
             markoshust/magento-php:8.3-fpm
             markoshust/magento-php:8.3-fpm
-            markoshust/magento-php:8.3-fpm-4
+            markoshust/magento-php:8.3-fpm-5

+ 1 - 1
.github/workflows/build-php-8-4.yml

@@ -32,4 +32,4 @@ jobs:
           platforms: linux/amd64,linux/arm64
           platforms: linux/amd64,linux/arm64
           push: true
           push: true
           tags: |
           tags: |
-            markoshust/magento-php:8.4-fpm-dev
+            markoshust/magento-php:8.4-fpm-0

+ 26 - 0
CHANGELOG.md

@@ -4,6 +4,32 @@ All notable changes to this project will be documented in this file.
 The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
 The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
 and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
 and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
 
 
+## [51.0.0] - 2025-04-08
+
+This release provides full support for Magento 2.4.8 (released same day), includes multiple Docker image updates, fixes important bugs, and adds several new utilities for improved developer experience.
+
+### Added
+- New `bin/docker-start` helper script to automatically start Docker Desktop or OrbStack environments [PR #956](https://github.com/markshust/docker-magento/pull/956)
+- Enhanced cron management that maintains state between container restarts [PR #1309](https://github.com/markshust/docker-magento/pull/1309)
+- Compatibility settings for Elasticsearch and OpenSearch on ARM64/Apple M-series chips [PR #1307](https://github.com/markshust/docker-magento/pull/1307)
+- Relocated Selenium service configuration to `compose.dev.yaml` for better organization [PR #913](https://github.com/markshust/docker-magento/pull/913)
+- Firefox Developer Edition support for SSL certificates [PR #830](https://github.com/markshust/docker-magento/pull/830)
+
+### Updated
+- Upgraded Node.js to version 22.x across all PHP images [PR #1305](https://github.com/markshust/docker-magento/pull/1305)
+- Upgraded PHP extensions: Redis to 6.2.0, Swoole to 6.0.2, Xdebug to 3.4.2 [PR #1305](https://github.com/markshust/docker-magento/pull/1305)
+- Updated Composer to 2.8.6 in PHP 8.2, 8.3, and 8.4 images [PR #1305](https://github.com/markshust/docker-magento/pull/1305)
+- Updated SPX PHP profiler to version 0.4.18 [PR #1305](https://github.com/markshust/docker-magento/pull/1305)
+- Increased client max body size limit to 100M in nginx configuration [PR #1307](https://github.com/markshust/docker-magento/pull/1307)
+- Improved SSL certificate handling for multi-domain setups [PR #1300](https://github.com/markshust/docker-magento/pull/1300)
+
+### Fixed
+- OpenSearch and Elasticsearch container failures on ARM64/Apple Silicon devices [PR #1307](https://github.com/markshust/docker-magento/pull/1307)
+- Cron service unexpectedly failing to restart after being enabled [PR #1309](https://github.com/markshust/docker-magento/pull/1309)
+- Multiple domain support in SSL certificate generation [PR #1257](https://github.com/markshust/docker-magento/pull/1257)
+- Typo in README documentation [PR #1296](https://github.com/markshust/docker-magento/pull/1296)
+- Reorganized backend access documentation for better visibility [PR #1306](https://github.com/markshust/docker-magento/pull/1306)
+
 ## [50.0.0] - 2024-01-31
 ## [50.0.0] - 2024-01-31
 
 
 ### Added
 ### Added

+ 21 - 31
README.md

@@ -151,28 +151,13 @@ mkdir -p ~/Sites/magento
 cd $_
 cd $_
 
 
 # Run this automated one-liner from the directory you want to install your project.
 # Run this automated one-liner from the directory you want to install your project.
-curl -s https://raw.githubusercontent.com/markshust/docker-magento/master/lib/onelinesetup | bash -s -- magento.test community 2.4.7-p3
+curl -s https://raw.githubusercontent.com/markshust/docker-magento/master/lib/onelinesetup | bash -s -- magento.test community 2.4.8
 ```
 ```
 
 
-The `magento.test` above defines the hostname to use, `community` is the Magento edition, and the `2.4.7-p3` defines the Magento version to install. Note that since we need a write to `/etc/hosts` for DNS resolution, you will be prompted for your system password during setup.
+The `magento.test` above defines the hostname to use, `community` is the Magento edition, and the `2.4.8` defines the Magento version to install. Note that since we need a write to `/etc/hosts` for DNS resolution, you will be prompted for your system password during setup.
 
 
 After the one-liner above completes running, you should be able to access your site at `https://magento.test`.
 After the one-liner above completes running, you should be able to access your site at `https://magento.test`.
 
 
-## Accessing the Magento Backend
-
-After successfully installing the Magento environment, you can access the backend by following these steps:
-
-1. Open your web browser and go to the following URL: `https://magento.test/admin/`.
-
-2. Use the following default credentials to log in:
-- **Username:** `john.smith`
-- **Password:** `password123`
-
-3. Upon logging in, you might be prompted to configure Two-Factor Authentication (2FA). This emails you a code to log in with (which you can check with Mailcatcher by visiting `http://{yourdomain}:1080`). By default, the email address used for this purpose is:
-- **Email:** `john.smith@gmail.com`
-
-If you are testing in a local development environment and wish to disable 2FA, you can do so by installing [Mark's DisableTwoFactorAuth module](https://github.com/markshust/magento2-module-disabletwofactorauth).
-
 #### Install sample data
 #### Install sample data
 
 
 After the above installation is complete, run the following lines to install sample data:
 After the above installation is complete, run the following lines to install sample data:
@@ -197,7 +182,7 @@ cd $_
 curl -s https://raw.githubusercontent.com/markshust/docker-magento/master/lib/template | bash
 curl -s https://raw.githubusercontent.com/markshust/docker-magento/master/lib/template | bash
 
 
 # Download the version of Magento you want to use with:
 # Download the version of Magento you want to use with:
-bin/download community 2.4.7-p3
+bin/download community 2.4.8
 # You can specify the edition (community, enterprise, mageos) and version (2.4.7-p3, 1.0.5, etc.)
 # You can specify the edition (community, enterprise, mageos) and version (2.4.7-p3, 1.0.5, etc.)
 # If no arguments are passed in, the edition defaults to "community"
 # If no arguments are passed in, the edition defaults to "community"
 # If no version is specified, it defaults to the most recent version defined in `bin/download`
 # If no version is specified, it defaults to the most recent version defined in `bin/download`
@@ -209,17 +194,6 @@ bin/download community 2.4.7-p3
 # bin/cli git checkout 2.4-develop
 # bin/cli git checkout 2.4-develop
 # bin/composer install
 # bin/composer install
 
 
-# Want to install Magento <2.4.6? In bin/setup-install, replace the lines:
-#  --elasticsearch-host="$ES_HOST" \
-#  --elasticsearch-port="$ES_PORT" \
-#  --opensearch-host="$OPENSEARCH_HOST" \
-#  --opensearch-port="$OPENSEARCH_PORT" \
-#  --search-engine=opensearch \
-# with:
-#  --elasticsearch-host="$ES_HOST" \
-#  --elasticsearch-port="$ES_PORT" \
-#  --search-engine=elasticsearch7 \
-
 # Run the setup installer for Magento:
 # Run the setup installer for Magento:
 bin/setup magento.test
 bin/setup magento.test
 
 
@@ -321,8 +295,9 @@ It is recommended to keep your root docker config files in one repository, and y
 - `bin/dev-urn-catalog-generate`: Generate URN's for PhpStorm and remap paths to local host. Restart PhpStorm after running this command.
 - `bin/dev-urn-catalog-generate`: Generate URN's for PhpStorm and remap paths to local host. Restart PhpStorm after running this command.
 - `bin/devconsole`: Alias for `bin/n98-magerun2 dev:console`
 - `bin/devconsole`: Alias for `bin/n98-magerun2 dev:console`
 - `bin/docker-compose`: Support V1 (`docker-compose`) and V2 (`docker compose`) docker compose command, and use custom configuration files, such as `compose.yml` and `compose.dev.yml`
 - `bin/docker-compose`: Support V1 (`docker-compose`) and V2 (`docker compose`) docker compose command, and use custom configuration files, such as `compose.yml` and `compose.dev.yml`
+- `bin/docker-start`: Start the Docker application (either Orbstack or Docker Desktop)
 - `bin/docker-stats`: Display container name and container ID, status for CPU, memory usage(in MiB and %), and memory limit of currently-running Docker containers.
 - `bin/docker-stats`: Display container name and container ID, status for CPU, memory usage(in MiB and %), and memory limit of currently-running Docker containers.
-- `bin/download`: Download specific Magento version from Composer to the container, with optional arguments of the type ("community" [default], "enterprise", or "mageos") and version ([default] is defined in `bin/download`). Ex. `bin/download mageos` or `bin/download enterprise 2.4.7-p3`
+- `bin/download`: Download specific Magento version from Composer to the container, with optional arguments of the type ("community" [default], "enterprise", or "mageos") and version ([default] is defined in `bin/download`). Ex. `bin/download mageos` or `bin/download enterprise 2.4.8`
 - `bin/ece-patches`: Run the Cloud Patches CLI. Ex: `bin/ece-tools apply`
 - `bin/ece-patches`: Run the Cloud Patches CLI. Ex: `bin/ece-tools apply`
 - `bin/fixowns`: This will fix filesystem ownerships within the container.
 - `bin/fixowns`: This will fix filesystem ownerships within the container.
 - `bin/fixperms`: This will fix filesystem permissions within the container.
 - `bin/fixperms`: This will fix filesystem permissions within the container.
@@ -359,7 +334,7 @@ It is recommended to keep your root docker config files in one repository, and y
 - `bin/setup-pwa-studio-sampledata`: This script makes it easier to install Venia sample data. Pass in your base site domain, otherwise the default `master-7rqtwti-mfwmkrjfqvbjk.us-4.magentosite.cloud` will be used. Ex: `bin/setup-pwa-studio-sampledata magento.test`.
 - `bin/setup-pwa-studio-sampledata`: This script makes it easier to install Venia sample data. Pass in your base site domain, otherwise the default `master-7rqtwti-mfwmkrjfqvbjk.us-4.magentosite.cloud` will be used. Ex: `bin/setup-pwa-studio-sampledata magento.test`.
 - `bin/setup-ssl`: Generate an SSL certificate for one or more domains. Ex. `bin/setup-ssl magento.test foo.test`
 - `bin/setup-ssl`: Generate an SSL certificate for one or more domains. Ex. `bin/setup-ssl magento.test foo.test`
 - `bin/setup-ssl-ca`: Generate a certificate authority and copy it to the host.
 - `bin/setup-ssl-ca`: Generate a certificate authority and copy it to the host.
-- `bin/spx`: Disable or enable output compression to enable or disbale SPX. Accepts params `disable` (default) or `enable`. Ex. `bin/spx enable`
+- `bin/spx`: Disable or enable output compression to enable or disable SPX. Accepts params `disable` (default) or `enable`. Ex. `bin/spx enable`
 - `bin/start`: Start all containers, good practice to use this instead of `docker-compose up -d`, as it may contain additional helpers.
 - `bin/start`: Start all containers, good practice to use this instead of `docker-compose up -d`, as it may contain additional helpers.
 - `bin/status`: Check the container status.
 - `bin/status`: Check the container status.
 - `bin/stop`: Stop all project containers.
 - `bin/stop`: Stop all project containers.
@@ -394,6 +369,21 @@ rm -rf yourproject
 
 
 Then, create your new project directory again so you can attempt the install process again. The `bin/removeall` command removes all previous Docker containers & volumes related to the specific project directory you are within. You can then attempt the install process again.
 Then, create your new project directory again so you can attempt the install process again. The `bin/removeall` command removes all previous Docker containers & volumes related to the specific project directory you are within. You can then attempt the install process again.
 
 
+### Accessing the Magento Backend
+
+After successfully installing the Magento environment, you can access the backend by following these steps:
+
+1. Open your web browser and go to the following URL: `https://magento.test/admin/`.
+
+2. Use the following default credentials to log in:
+- **Username:** `john.smith`
+- **Password:** `password123`
+
+3. Upon logging in, you might be prompted to configure Two-Factor Authentication (2FA). This emails you a code to log in with (which you can check with Mailcatcher by visiting `http://{yourdomain}:1080`). By default, the email address used for this purpose is:
+- **Email:** `john.smith@gmail.com`
+
+If you are testing in a local development environment and wish to disable 2FA, you can do so by installing [Mark's DisableTwoFactorAuth module](https://github.com/markshust/magento2-module-disabletwofactorauth).
+
 ### Caching
 ### Caching
 
 
 For an improved developer experience, caches are automatically refreshed when related files are updated, courtesy of [cache-clean](https://github.com/mage2tv/magento-cache-clean). This means you can keep all of the standard Magento caches enabled, and this script will only clear the specific caches needed, and only when necessary.
 For an improved developer experience, caches are automatically refreshed when related files are updated, courtesy of [cache-clean](https://github.com/mage2tv/magento-cache-clean). This means you can keep all of the standard Magento caches enabled, and this script will only clear the specific caches needed, and only when necessary.

+ 1 - 0
compose/Makefile

@@ -39,6 +39,7 @@ help:
 	@echo "$(call format,dev-urn-catalog-generate,'Generate URNs for PHPStorm and remap paths to local host.')"
 	@echo "$(call format,dev-urn-catalog-generate,'Generate URNs for PHPStorm and remap paths to local host.')"
 	@echo "$(call format,devconsole,'Alias for n98-magerun2 dev:console.')"
 	@echo "$(call format,devconsole,'Alias for n98-magerun2 dev:console.')"
 	@echo "$(call format,docker-compose,'Support V1 (`docker-compose`) and V2 (`docker compose`) docker compose command, and use custom configuration files.')"
 	@echo "$(call format,docker-compose,'Support V1 (`docker-compose`) and V2 (`docker compose`) docker compose command, and use custom configuration files.')"
+	@echo "$(call format,docker-start,'Start the Docker application (either Orbstack or Docker Desktop)"
 	@echo "$(call format,docker-stats,'Display status for CPU$(comma) memory usage$(comma) and memory limit of currently-running Docker containers.')"
 	@echo "$(call format,docker-stats,'Display status for CPU$(comma) memory usage$(comma) and memory limit of currently-running Docker containers.')"
 	@echo "$(call format,download,'Download & extract specific Magento version to the src directory.')"
 	@echo "$(call format,download,'Download & extract specific Magento version to the src directory.')"
 	@echo "$(call format,ece-patches,'Run the Cloud Patches CLI.')"
 	@echo "$(call format,ece-patches,'Run the Cloud Patches CLI.')"

+ 11 - 0
compose/bin/cron

@@ -1,5 +1,16 @@
 #!/usr/bin/env bash
 #!/usr/bin/env bash
 [ -z "$1" ] && echo "Please specify a service operation (start|stop|status|restart|reload|force-reload)" && exit
 [ -z "$1" ] && echo "Please specify a service operation (start|stop|status|restart|reload|force-reload)" && exit
+
+if [ "$1" == "start" ]; then
+  # Create the .cron-enabled file when starting cron
+  bin/cli touch /var/www/html/var/.cron-enabled
+fi
+
+if [ "$1" == "stop" ]; then
+  # Remove the .cron-enabled file when stopping cron
+  bin/cli rm -f /var/www/html/var/.cron-enabled
+fi
+
 bin/root service cron "$@"
 bin/root service cron "$@"
 bin/root touch /var/www/html/var/.setup_cronjob_status /var/www/html/var/.update_cronjob_status
 bin/root touch /var/www/html/var/.setup_cronjob_status /var/www/html/var/.update_cronjob_status
 bin/root chown app:app /var/www/html/var/.setup_cronjob_status /var/www/html/var/.update_cronjob_status
 bin/root chown app:app /var/www/html/var/.setup_cronjob_status /var/www/html/var/.update_cronjob_status

+ 53 - 0
compose/bin/docker-start

@@ -0,0 +1,53 @@
+#!/usr/bin/env bash
+
+# Function to check if Docker daemon is running
+docker_running() {
+  docker stats --no-stream &> /dev/null
+  return $?
+}
+
+# Check if OrbStack is installed and not running
+if [ -d "/Applications/OrbStack.app" ]; then
+  echo "* OrbStack is installed"
+  
+  if (! docker_running); then
+    echo "* Starting OrbStack..."
+    open /Applications/OrbStack.app
+    
+    # Wait until Docker daemon is running via OrbStack
+    while (! docker_running); do
+      echo "* Waiting for OrbStack to initialize Docker..."
+      sleep 2
+    done
+    
+    echo "* Docker is now running via OrbStack"
+    exit 0
+  else
+    echo "* Docker is already running (possibly via OrbStack)"
+    exit 0
+  fi
+fi
+
+# Check if Docker Desktop is installed
+if [ -d "/Applications/Docker.app" ]; then
+  echo "* Docker Desktop is installed"
+  
+  # Check if Docker is running
+  if (! docker_running); then
+    echo "* Starting Docker Desktop..."
+    open /Applications/Docker.app
+    
+    # Wait until Docker daemon is running
+    while (! docker_running); do
+      echo "* Waiting for Docker Desktop to initialize..."
+      sleep 2
+    done
+    
+    echo "* Docker Desktop is now running"
+  else
+    echo "* Docker is already running"
+  fi
+else
+  echo "* Docker Desktop is not installed. Please install Docker Desktop or OrbStack."
+  exit 1
+fi

+ 1 - 1
compose/bin/setup-ssl

@@ -1,5 +1,5 @@
 #!/usr/bin/env bash
 #!/usr/bin/env bash
-[ -z "$1" ] && echo "Please specify a domain (ex. mydomain.test)" && exit
+[ $# -eq 0 ] && echo "Please specify at least one domain (ex. mydomain.test)" && exit
 
 
 # Generate certificate authority if not already setup
 # Generate certificate authority if not already setup
 if ! bin/docker-compose exec -T -u root app cat /root/.local/share/mkcert/rootCA.pem | grep -q 'BEGIN CERTIFICATE'; then
 if ! bin/docker-compose exec -T -u root app cat /root/.local/share/mkcert/rootCA.pem | grep -q 'BEGIN CERTIFICATE'; then

+ 6 - 0
compose/bin/start

@@ -66,4 +66,10 @@ bin/docker-compose up -d --remove-orphans "$@"
 ## Then uncomment the below line (and leave uncommented) to start the agent automatically with bin/start:
 ## Then uncomment the below line (and leave uncommented) to start the agent automatically with bin/start:
 #bin/root /etc/init.d/blackfire-agent start
 #bin/root /etc/init.d/blackfire-agent start
 
 
+# Check if cron was previously enabled and restart it if needed
+if bin/cli test -f /var/www/html/var/.cron-enabled; then
+  echo "Cron was previously enabled, restarting cron service..."
+  bin/cron start
+fi
+
 bin/cache-clean --watch
 bin/cache-clean --watch

+ 1 - 1
compose/compose.yaml

@@ -1,7 +1,7 @@
 ## Mark Shust's Docker Configuration for Magento
 ## Mark Shust's Docker Configuration for Magento
 ## (https://github.com/markshust/docker-magento)
 ## (https://github.com/markshust/docker-magento)
 ##
 ##
-## Version 50.0.0
+## Version 51.0.0
 
 
 ## To use SSH, see https://github.com/markshust/docker-magento#ssh
 ## To use SSH, see https://github.com/markshust/docker-magento#ssh
 ## Linux users, see https://github.com/markshust/docker-magento#linux
 ## Linux users, see https://github.com/markshust/docker-magento#linux

+ 3 - 0
compose/env/elasticsearch.env

@@ -1,2 +1,5 @@
 ES_HOST=elasticsearch
 ES_HOST=elasticsearch
 ES_PORT=9200
 ES_PORT=9200
+
+# Compatibility with ARM64/Apple M-series chips
+_JAVA_OPTIONS="-XX:UseSVE=0"

+ 3 - 0
compose/env/opensearch.env

@@ -3,3 +3,6 @@ OPENSEARCH_PORT=9200
 
 
 # Prevent security patch conflicts with core M2 code
 # Prevent security patch conflicts with core M2 code
 DISABLE_SECURITY_PLUGIN=true
 DISABLE_SECURITY_PLUGIN=true
+
+# Compatibility with ARM64/Apple M-series chips
+_JAVA_OPTIONS="-XX:UseSVE=0"

+ 1 - 1
images/nginx/1.24/Dockerfile

@@ -1,5 +1,5 @@
 FROM nginx:1.24-alpine
 FROM nginx:1.24-alpine
-MAINTAINER Mark Shust <mark@shust.com>
+LABEL maintainer="Mark Shust <mark@shust.com>"
 
 
 ARG APP_ID=1000
 ARG APP_ID=1000
 
 

+ 1 - 1
images/nginx/1.24/conf/nginx.conf

@@ -30,7 +30,7 @@ http {
 
 
   #gzip on;
   #gzip on;
 
 
-  client_max_body_size 20M;
+  client_max_body_size 100M;
 
 
   include /etc/nginx/conf.d/*.conf;
   include /etc/nginx/conf.d/*.conf;
 }
 }

+ 7 - 19
images/php/8.1/Dockerfile

@@ -8,7 +8,7 @@ RUN groupadd -g "$APP_ID" app \
 RUN mkdir -p /etc/nginx/html /var/www/html /sock \
 RUN mkdir -p /etc/nginx/html /var/www/html /sock \
   && chown -R app:app /etc/nginx /var/www /usr/local/etc/php/conf.d /sock
   && chown -R app:app /etc/nginx /var/www /usr/local/etc/php/conf.d /sock
 
 
-RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
+RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
 
 
 RUN apt-get update && apt-get install -y \
 RUN apt-get update && apt-get install -y \
     cron \
     cron \
@@ -42,26 +42,14 @@ RUN apt-get update && apt-get install -y \
   && rm -rf /var/lib/apt/lists/*
   && rm -rf /var/lib/apt/lists/*
 
 
 RUN pecl channel-update pecl.php.net && pecl install \
 RUN pecl channel-update pecl.php.net && pecl install \
-    redis-6.1.0 \
+    redis-6.2.0 \
     ssh2-1.4.1 \
     ssh2-1.4.1 \
-    swoole-6.0.0 \
-    xdebug-3.4.1 \
+    swoole-6.0.2 \
+    xdebug-3.4.2 \
+    imagick-3.8.0RC2 \
   && pecl clear-cache \
   && pecl clear-cache \
   && rm -rf /tmp/pear
   && rm -rf /tmp/pear
 
 
-RUN imagick_branch="28f27044e435a2b203e32675e942eb8de620ee58" \
-    && curl -L https://github.com/Imagick/imagick/archive/$imagick_branch.zip -o imagick.zip \
-    && unzip imagick.zip \
-    && rm imagick.zip \
-    && cd imagick-$imagick_branch \
-    && phpize \
-    && ./configure --with-php-config=/usr/local/bin/php-config \
-    && make \
-    && make install \
-    && echo "extension=imagick.so" >> $PHP_INI_DIR/conf.d/imagick.ini \
-    && cd .. \
-    && rm -rf imagick-$imagick_branch
-
 RUN docker-php-ext-configure \
 RUN docker-php-ext-configure \
     gd --with-freetype --with-jpeg --with-webp \
     gd --with-freetype --with-jpeg --with-webp \
   && docker-php-ext-install \
   && docker-php-ext-install \
@@ -99,7 +87,7 @@ RUN version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \
     && mv /tmp/blackfire/blackfire-*.so $(php -r "echo ini_get ('extension_dir');")/blackfire.so \
     && mv /tmp/blackfire/blackfire-*.so $(php -r "echo ini_get ('extension_dir');")/blackfire.so \
     && rm -rf /tmp/blackfire /tmp/blackfire-probe.tar.gz
     && rm -rf /tmp/blackfire /tmp/blackfire-probe.tar.gz
 
 
-RUN git clone --branch v0.4.17 --depth=1 https://github.com/NoiseByNorthwest/php-spx.git /usr/lib/php-spx \
+RUN git clone --branch v0.4.18 --depth=1 https://github.com/NoiseByNorthwest/php-spx.git /usr/lib/php-spx \
     && cd /usr/lib/php-spx \
     && cd /usr/lib/php-spx \
     && phpize \
     && phpize \
     && ./configure \
     && ./configure \
@@ -107,7 +95,7 @@ RUN git clone --branch v0.4.17 --depth=1 https://github.com/NoiseByNorthwest/php
     && make install
     && make install
 
 
 RUN curl -sS https://getcomposer.org/installer | \
 RUN curl -sS https://getcomposer.org/installer | \
-  php -- --version=2.2.24 --install-dir=/usr/local/bin --filename=composer
+  php -- --version=2.7.9 --install-dir=/usr/local/bin --filename=composer
 
 
 COPY conf/blackfire.ini $PHP_INI_DIR/conf.d/blackfire.ini
 COPY conf/blackfire.ini $PHP_INI_DIR/conf.d/blackfire.ini
 COPY conf/spx.ini $PHP_INI_DIR/conf.d/spx.ini
 COPY conf/spx.ini $PHP_INI_DIR/conf.d/spx.ini

+ 7 - 19
images/php/8.2/Dockerfile

@@ -8,7 +8,7 @@ RUN groupadd -g "$APP_ID" app \
 RUN mkdir -p /etc/nginx/html /var/www/html /sock \
 RUN mkdir -p /etc/nginx/html /var/www/html /sock \
   && chown -R app:app /etc/nginx /var/www /usr/local/etc/php/conf.d /sock
   && chown -R app:app /etc/nginx /var/www /usr/local/etc/php/conf.d /sock
 
 
-RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
+RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
 
 
 RUN apt-get update && apt-get install -y \
 RUN apt-get update && apt-get install -y \
     cron \
     cron \
@@ -42,26 +42,14 @@ RUN apt-get update && apt-get install -y \
   && rm -rf /var/lib/apt/lists/*
   && rm -rf /var/lib/apt/lists/*
 
 
 RUN pecl channel-update pecl.php.net && pecl install \
 RUN pecl channel-update pecl.php.net && pecl install \
-    redis-6.1.0 \
+    redis-6.2.0 \
     ssh2-1.4.1 \
     ssh2-1.4.1 \
-    swoole-6.0.0 \
-    xdebug-3.4.1 \
+    swoole-6.0.2 \
+    xdebug-3.4.2 \
+    imagick-3.8.0RC2 \
   && pecl clear-cache \
   && pecl clear-cache \
   && rm -rf /tmp/pear
   && rm -rf /tmp/pear
 
 
-RUN imagick_branch="28f27044e435a2b203e32675e942eb8de620ee58" \
-    && curl -L https://github.com/Imagick/imagick/archive/$imagick_branch.zip -o imagick.zip \
-    && unzip imagick.zip \
-    && rm imagick.zip \
-    && cd imagick-$imagick_branch \
-    && phpize \
-    && ./configure --with-php-config=/usr/local/bin/php-config \
-    && make \
-    && make install \
-    && echo "extension=imagick.so" >> $PHP_INI_DIR/conf.d/imagick.ini \
-    && cd .. \
-    && rm -rf imagick-$imagick_branch
-
 RUN docker-php-ext-configure \
 RUN docker-php-ext-configure \
     gd --with-freetype --with-jpeg --with-webp \
     gd --with-freetype --with-jpeg --with-webp \
   && docker-php-ext-install \
   && docker-php-ext-install \
@@ -100,7 +88,7 @@ RUN version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \
     && mv /tmp/blackfire/blackfire-*.so $(php -r "echo ini_get ('extension_dir');")/blackfire.so \
     && mv /tmp/blackfire/blackfire-*.so $(php -r "echo ini_get ('extension_dir');")/blackfire.so \
     && rm -rf /tmp/blackfire /tmp/blackfire-probe.tar.gz
     && rm -rf /tmp/blackfire /tmp/blackfire-probe.tar.gz
 
 
-RUN git clone --branch v0.4.17 --depth=1 https://github.com/NoiseByNorthwest/php-spx.git /usr/lib/php-spx \
+RUN git clone --branch v0.4.18 --depth=1 https://github.com/NoiseByNorthwest/php-spx.git /usr/lib/php-spx \
     && cd /usr/lib/php-spx \
     && cd /usr/lib/php-spx \
     && phpize \
     && phpize \
     && ./configure \
     && ./configure \
@@ -108,7 +96,7 @@ RUN git clone --branch v0.4.17 --depth=1 https://github.com/NoiseByNorthwest/php
     && make install
     && make install
 
 
 RUN curl -sS https://getcomposer.org/installer | \
 RUN curl -sS https://getcomposer.org/installer | \
-  php -- --version=2.7.9 --install-dir=/usr/local/bin --filename=composer
+  php -- --version=2.8.6 --install-dir=/usr/local/bin --filename=composer
 
 
 COPY conf/blackfire.ini $PHP_INI_DIR/conf.d/blackfire.ini
 COPY conf/blackfire.ini $PHP_INI_DIR/conf.d/blackfire.ini
 COPY conf/spx.ini $PHP_INI_DIR/conf.d/spx.ini
 COPY conf/spx.ini $PHP_INI_DIR/conf.d/spx.ini

+ 7 - 19
images/php/8.3/Dockerfile

@@ -8,7 +8,7 @@ RUN groupadd -g "$APP_ID" app \
 RUN mkdir -p /etc/nginx/html /var/www/html /sock \
 RUN mkdir -p /etc/nginx/html /var/www/html /sock \
   && chown -R app:app /etc/nginx /var/www /usr/local/etc/php/conf.d /sock
   && chown -R app:app /etc/nginx /var/www /usr/local/etc/php/conf.d /sock
 
 
-RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
+RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
 
 
 RUN apt-get update && apt-get install -y \
 RUN apt-get update && apt-get install -y \
     cron \
     cron \
@@ -42,26 +42,14 @@ RUN apt-get update && apt-get install -y \
   && rm -rf /var/lib/apt/lists/*
   && rm -rf /var/lib/apt/lists/*
 
 
 RUN pecl channel-update pecl.php.net && pecl install \
 RUN pecl channel-update pecl.php.net && pecl install \
-    redis-6.1.0 \
+    redis-6.2.0 \
     ssh2-1.4.1 \
     ssh2-1.4.1 \
-    swoole-6.0.0 \
-    xdebug-3.4.1 \
+    swoole-6.0.2 \
+    xdebug-3.4.2 \
+    imagick-3.8.0RC2 \
   && pecl clear-cache \
   && pecl clear-cache \
   && rm -rf /tmp/pear
   && rm -rf /tmp/pear
 
 
-RUN imagick_branch="28f27044e435a2b203e32675e942eb8de620ee58" \
-    && curl -L https://github.com/Imagick/imagick/archive/$imagick_branch.zip -o imagick.zip \
-    && unzip imagick.zip \
-    && rm imagick.zip \
-    && cd imagick-$imagick_branch \
-    && phpize \
-    && ./configure --with-php-config=/usr/local/bin/php-config \
-    && make \
-    && make install \
-    && echo "extension=imagick.so" >> $PHP_INI_DIR/conf.d/imagick.ini \
-    && cd .. \
-    && rm -rf imagick-$imagick_branch
-
 RUN docker-php-ext-configure \
 RUN docker-php-ext-configure \
     gd --with-freetype --with-jpeg --with-webp \
     gd --with-freetype --with-jpeg --with-webp \
   && docker-php-ext-install \
   && docker-php-ext-install \
@@ -100,7 +88,7 @@ RUN version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \
     && mv /tmp/blackfire/blackfire-*.so $(php -r "echo ini_get ('extension_dir');")/blackfire.so \
     && mv /tmp/blackfire/blackfire-*.so $(php -r "echo ini_get ('extension_dir');")/blackfire.so \
     && rm -rf /tmp/blackfire /tmp/blackfire-probe.tar.gz
     && rm -rf /tmp/blackfire /tmp/blackfire-probe.tar.gz
 
 
-RUN git clone --branch v0.4.17 --depth=1 https://github.com/NoiseByNorthwest/php-spx.git /usr/lib/php-spx \
+RUN git clone --branch v0.4.18 --depth=1 https://github.com/NoiseByNorthwest/php-spx.git /usr/lib/php-spx \
     && cd /usr/lib/php-spx \
     && cd /usr/lib/php-spx \
     && phpize \
     && phpize \
     && ./configure \
     && ./configure \
@@ -108,7 +96,7 @@ RUN git clone --branch v0.4.17 --depth=1 https://github.com/NoiseByNorthwest/php
     && make install
     && make install
 
 
 RUN curl -sS https://getcomposer.org/installer | \
 RUN curl -sS https://getcomposer.org/installer | \
-  php -- --version=2.7.9 --install-dir=/usr/local/bin --filename=composer
+  php -- --version=2.8.6 --install-dir=/usr/local/bin --filename=composer
 
 
 COPY conf/blackfire.ini $PHP_INI_DIR/conf.d/blackfire.ini
 COPY conf/blackfire.ini $PHP_INI_DIR/conf.d/blackfire.ini
 COPY conf/spx.ini $PHP_INI_DIR/conf.d/spx.ini
 COPY conf/spx.ini $PHP_INI_DIR/conf.d/spx.ini

+ 7 - 21
images/php/8.4/Dockerfile

@@ -8,7 +8,7 @@ RUN groupadd -g "$APP_ID" app \
 RUN mkdir -p /etc/nginx/html /var/www/html /sock \
 RUN mkdir -p /etc/nginx/html /var/www/html /sock \
   && chown -R app:app /etc/nginx /var/www /usr/local/etc/php/conf.d /sock
   && chown -R app:app /etc/nginx /var/www /usr/local/etc/php/conf.d /sock
 
 
-RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
+RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
 
 
 RUN apt-get update && apt-get install -y \
 RUN apt-get update && apt-get install -y \
     cron \
     cron \
@@ -42,26 +42,14 @@ RUN apt-get update && apt-get install -y \
   && rm -rf /var/lib/apt/lists/*
   && rm -rf /var/lib/apt/lists/*
 
 
 RUN pecl channel-update pecl.php.net && pecl install \
 RUN pecl channel-update pecl.php.net && pecl install \
-    redis-6.1.0 \
+    redis-6.2.0 \
     ssh2-1.4.1 \
     ssh2-1.4.1 \
-    swoole-6.0.0 \
-    xdebug-3.4.1 \
+    swoole-6.0.2 \
+    xdebug-3.4.2 \
+    imagick-3.8.0RC2 \
   && pecl clear-cache \
   && pecl clear-cache \
   && rm -rf /tmp/pear
   && rm -rf /tmp/pear
 
 
-RUN imagick_branch="28f27044e435a2b203e32675e942eb8de620ee58" \
-    && curl -L https://github.com/Imagick/imagick/archive/$imagick_branch.zip -o imagick.zip \
-    && unzip imagick.zip \
-    && rm imagick.zip \
-    && cd imagick-$imagick_branch \
-    && phpize \
-    && ./configure --with-php-config=/usr/local/bin/php-config \
-    && make \
-    && make install \
-    && echo "extension=imagick.so" >> $PHP_INI_DIR/conf.d/imagick.ini \
-    && cd .. \
-    && rm -rf imagick-$imagick_branch
-
 RUN docker-php-ext-configure \
 RUN docker-php-ext-configure \
     gd --with-freetype --with-jpeg --with-webp \
     gd --with-freetype --with-jpeg --with-webp \
   && docker-php-ext-install \
   && docker-php-ext-install \
@@ -92,9 +80,7 @@ RUN docker-php-ext-configure \
     ssh2 \
     ssh2 \
     xdebug
     xdebug
 
 
-# Temporary workaround for PHP 8.4
 RUN version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \
 RUN version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \
-    && version=83 \
     && architecture=$(uname -m) \
     && architecture=$(uname -m) \
     && curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/$architecture/$version \
     && curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/$architecture/$version \
     && mkdir -p /tmp/blackfire \
     && mkdir -p /tmp/blackfire \
@@ -102,7 +88,7 @@ RUN version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \
     && mv /tmp/blackfire/blackfire-*.so $(php -r "echo ini_get ('extension_dir');")/blackfire.so \
     && mv /tmp/blackfire/blackfire-*.so $(php -r "echo ini_get ('extension_dir');")/blackfire.so \
     && rm -rf /tmp/blackfire /tmp/blackfire-probe.tar.gz
     && rm -rf /tmp/blackfire /tmp/blackfire-probe.tar.gz
 
 
-RUN git clone --branch v0.4.17 --depth=1 https://github.com/NoiseByNorthwest/php-spx.git /usr/lib/php-spx \
+RUN git clone --branch v0.4.18 --depth=1 https://github.com/NoiseByNorthwest/php-spx.git /usr/lib/php-spx \
     && cd /usr/lib/php-spx \
     && cd /usr/lib/php-spx \
     && phpize \
     && phpize \
     && ./configure \
     && ./configure \
@@ -110,7 +96,7 @@ RUN git clone --branch v0.4.17 --depth=1 https://github.com/NoiseByNorthwest/php
     && make install
     && make install
 
 
 RUN curl -sS https://getcomposer.org/installer | \
 RUN curl -sS https://getcomposer.org/installer | \
-  php -- --version=2.7.9 --install-dir=/usr/local/bin --filename=composer
+  php -- --version=2.8.6 --install-dir=/usr/local/bin --filename=composer
 
 
 COPY conf/blackfire.ini $PHP_INI_DIR/conf.d/blackfire.ini
 COPY conf/blackfire.ini $PHP_INI_DIR/conf.d/blackfire.ini
 COPY conf/spx.ini $PHP_INI_DIR/conf.d/spx.ini
 COPY conf/spx.ini $PHP_INI_DIR/conf.d/spx.ini