diff --git a/8.2/Dockerfile b/8.2/Dockerfile index bba79835..8d632099 100644 --- a/8.2/Dockerfile +++ b/8.2/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 # check=skip=SecretsUsedInArgOrEnv (ignore false positives in ARG/ENV) -FROM php:8.2.30-fpm-bookworm AS cli +FROM php:8.2.30-fpm-trixie AS cli ARG TARGETARCH ARG DEBIAN_FRONTEND=noninteractive @@ -64,6 +64,7 @@ RUN set -xe; \ procps \ pv \ rsync \ + sqlite3 \ sudo \ supervisor \ unzip \ @@ -101,7 +102,7 @@ RUN set -xe; \ # Configure sshd (for use PHPStorm's remote interpreters and tools integrations) # http://docs.docker.com/examples/running_ssh_service/ RUN set -xe; \ - mkdir /var/run/sshd; \ + mkdir -p /var/run/sshd; \ echo 'docker:docker' | chpasswd; \ sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config; \ # SSH login fix. Otherwise user is kicked off after login @@ -217,16 +218,6 @@ RUN set -xe; \ # Cleanup apt-get clean; rm -rf /var/lib/apt/lists/* -# Install a newer SQLite version from Debian Trixie (testing) repo -# Debian Bookworm (main) ships with sqlite v3.40. Drupal 11 requires SQLite v3.45+. -# @see https://www.drupal.org/project/drupal/issues/3346338 -RUN set -xe; \ - echo "deb https://deb.debian.org/debian testing main" | tee /etc/apt/sources.list.d/testing.list; \ - apt-get update >/dev/null; \ - apt-get install -y -t testing sqlite3;\ - # Cleanup - apt-get clean; rm -rf /var/lib/apt/lists/*; rm -f /etc/apt/sources.list.d/testing.list - # All further RUN commands will run as the "docker" user USER docker SHELL ["/bin/bash", "-c"] @@ -238,20 +229,22 @@ RUN set -e; \ # Add composer bin project level and global directories to PATH # Project level comes first and thus takes precedence over the global one echo -e "\n"'export PATH="$PATH:${PROJECT_ROOT:-/var/www}/vendor/bin"' >> $HOME/.profile; \ + echo -e "\n"'export PATH="$PATH:$HOME/.config/composer/vendor/bin"' >> $HOME/.profile; \ + # Legacy composer global directory (for backward compatibility) echo -e "\n"'export PATH="$PATH:$HOME/.composer/vendor/bin"' >> $HOME/.profile; \ # Reload updated PATH from profile to make composer/etc. visible below - . $HOME/.profile; \ + source $HOME/.profile; \ # Drupal Coder & WP Coding Standards w/ a matching version of PHP_CodeSniffer # Set allow-plugins. See https://getcomposer.org/allow-plugins composer global config allow-plugins.dealerdirect/phpcodesniffer-composer-installer true; \ composer global require drupal/coder wp-coding-standards/wpcs phpcompatibility/phpcompatibility-wp; \ - # Don't fix the indentation or installed_paths will not be set correctly + # IMPORTANT: Do NOT fix the indentation or installed_paths will not be set correctly phpcs --config-set installed_paths \ -$HOME/.composer/vendor/drupal/coder/coder_sniffer/,\ -$HOME/.composer/vendor/wp-coding-standards/wpcs/,\ -$HOME/.composer/vendor/phpcompatibility/php-compatibility/PHPCompatibility/,\ -$HOME/.composer/vendor/phpcompatibility/phpcompatibility-wp/PHPCompatibilityWP,\ -$HOME/.composer/vendor/phpcompatibility/phpcompatibility-paragonie/PHPCompatibilityParagonieRandomCompat; \ +$HOME/.config/composer/vendor/drupal/coder/coder_sniffer/,\ +$HOME/.config/composer/vendor/wp-coding-standards/wpcs/,\ +$HOME/.config/composer/vendor/phpcompatibility/php-compatibility/PHPCompatibility/,\ +$HOME/.config/composer/vendor/phpcompatibility/phpcompatibility-wp/PHPCompatibilityWP,\ +$HOME/.config/composer/vendor/phpcompatibility/phpcompatibility-paragonie/PHPCompatibilityParagonieRandomCompat; \ # Cleanup composer clear-cache @@ -259,28 +252,25 @@ $HOME/.composer/vendor/phpcompatibility/phpcompatibility-paragonie/PHPCompatibil ENV \ NVM_VERSION=0.40.4 \ NODE_VERSION=24.13.0 \ - # Yarn (Classic v1) - # https://github.com/yarnpkg/yarn/releases + # yarn v1 (classic) https://github.com/yarnpkg/yarn/releases YARN_VERSION=1.22.22 # Don't use -x here, as the output may be excessive RUN set -e; \ - # NVM and a defaut Node.js version + # NVM and a default Node.js version export PROFILE="$HOME/.profile"; \ - curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v${NVM_VERSION}/install.sh | bash >/dev/null; \ - # Reload profile to load nvm (needed by Yarn installation below) - . $HOME/.profile; \ - # Yarn (Classic v1) - # Installing via npm to allow fore override with never versions via corepack - npm install -g yarn@${YARN_VERSION}; \ - # Enable corepack (allows installing project level yarn v2+ via yarn) - corepack enable + curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v${NVM_VERSION}/install.sh | bash; \ + # Load nvm right away (needed by Yarn installation below) + source $HOME/.profile; \ + # Enable corepack and install yarn v1 (classic) globally + corepack enable; \ + corepack install -g yarn@${YARN_VERSION} ## Ruby bundler ## Don't use -x here, as the output may be excessive RUN set -e; \ # Export ruby gem bin path echo 'export PATH=$PATH:$(ruby -r rubygems -e "puts Gem.user_dir")/bin' >> $HOME/.profile; \ - . $HOME/.profile; \ + source $HOME/.profile; \ gem install --user-install bundler; \ # Have bundler install gems in the current directory (./.bundle) by default echo -e "\n"'export BUNDLE_PATH=.bundle' >> $HOME/.profile diff --git a/8.3/Dockerfile b/8.3/Dockerfile index d4405542..6e31eb96 100644 --- a/8.3/Dockerfile +++ b/8.3/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 # check=skip=SecretsUsedInArgOrEnv (ignore false positives in ARG/ENV) -FROM php:8.3.30-fpm-bookworm AS cli +FROM php:8.3.30-fpm-trixie AS cli ARG TARGETARCH ARG DEBIAN_FRONTEND=noninteractive @@ -64,6 +64,7 @@ RUN set -xe; \ procps \ pv \ rsync \ + sqlite3 \ sudo \ supervisor \ unzip \ @@ -101,7 +102,7 @@ RUN set -xe; \ # Configure sshd (for use PHPStorm's remote interpreters and tools integrations) # http://docs.docker.com/examples/running_ssh_service/ RUN set -xe; \ - mkdir /var/run/sshd; \ + mkdir -p /var/run/sshd; \ echo 'docker:docker' | chpasswd; \ sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config; \ # SSH login fix. Otherwise user is kicked off after login @@ -217,16 +218,6 @@ RUN set -xe; \ # Cleanup apt-get clean; rm -rf /var/lib/apt/lists/* -# Install a newer SQLite version from Debian Trixie (testing) repo -# Debian Bookworm (main) ships with sqlite v3.40. Drupal 11 requires SQLite v3.45+. -# @see https://www.drupal.org/project/drupal/issues/3346338 -RUN set -xe; \ - echo "deb https://deb.debian.org/debian testing main" | tee /etc/apt/sources.list.d/testing.list; \ - apt-get update >/dev/null; \ - apt-get install -y -t testing sqlite3;\ - # Cleanup - apt-get clean; rm -rf /var/lib/apt/lists/*; rm -f /etc/apt/sources.list.d/testing.list - # All further RUN commands will run as the "docker" user USER docker SHELL ["/bin/bash", "-c"] @@ -238,20 +229,22 @@ RUN set -e; \ # Add composer bin project level and global directories to PATH # Project level comes first and thus takes precedence over the global one echo -e "\n"'export PATH="$PATH:${PROJECT_ROOT:-/var/www}/vendor/bin"' >> $HOME/.profile; \ + echo -e "\n"'export PATH="$PATH:$HOME/.config/composer/vendor/bin"' >> $HOME/.profile; \ + # Legacy composer global directory (for backward compatibility) echo -e "\n"'export PATH="$PATH:$HOME/.composer/vendor/bin"' >> $HOME/.profile; \ # Reload updated PATH from profile to make composer/etc. visible below - . $HOME/.profile; \ + source $HOME/.profile; \ # Drupal Coder & WP Coding Standards w/ a matching version of PHP_CodeSniffer # Set allow-plugins. See https://getcomposer.org/allow-plugins composer global config allow-plugins.dealerdirect/phpcodesniffer-composer-installer true; \ composer global require drupal/coder wp-coding-standards/wpcs phpcompatibility/phpcompatibility-wp; \ - # Don't fix the indentation or installed_paths will not be set correctly + # IMPORTANT: Do NOT fix the indentation or installed_paths will not be set correctly phpcs --config-set installed_paths \ -$HOME/.composer/vendor/drupal/coder/coder_sniffer/,\ -$HOME/.composer/vendor/wp-coding-standards/wpcs/,\ -$HOME/.composer/vendor/phpcompatibility/php-compatibility/PHPCompatibility/,\ -$HOME/.composer/vendor/phpcompatibility/phpcompatibility-wp/PHPCompatibilityWP,\ -$HOME/.composer/vendor/phpcompatibility/phpcompatibility-paragonie/PHPCompatibilityParagonieRandomCompat; \ +$HOME/.config/composer/vendor/drupal/coder/coder_sniffer/,\ +$HOME/.config/composer/vendor/wp-coding-standards/wpcs/,\ +$HOME/.config/composer/vendor/phpcompatibility/php-compatibility/PHPCompatibility/,\ +$HOME/.config/composer/vendor/phpcompatibility/phpcompatibility-wp/PHPCompatibilityWP,\ +$HOME/.config/composer/vendor/phpcompatibility/phpcompatibility-paragonie/PHPCompatibilityParagonieRandomCompat; \ # Cleanup composer clear-cache @@ -259,28 +252,25 @@ $HOME/.composer/vendor/phpcompatibility/phpcompatibility-paragonie/PHPCompatibil ENV \ NVM_VERSION=0.40.4 \ NODE_VERSION=24.13.0 \ - # Yarn (Classic v1) - # https://github.com/yarnpkg/yarn/releases + # yarn v1 (classic) https://github.com/yarnpkg/yarn/releases YARN_VERSION=1.22.22 # Don't use -x here, as the output may be excessive RUN set -e; \ - # NVM and a defaut Node.js version + # NVM and a default Node.js version export PROFILE="$HOME/.profile"; \ - curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v${NVM_VERSION}/install.sh | bash >/dev/null; \ - # Reload profile to load nvm (needed by Yarn installation below) - . $HOME/.profile; \ - # Yarn (Classic v1) - # Installing via npm to allow fore override with never versions via corepack - npm install -g yarn@${YARN_VERSION}; \ - # Enable corepack (allows installing project level yarn v2+ via yarn) - corepack enable + curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v${NVM_VERSION}/install.sh | bash; \ + # Load nvm right away (needed by Yarn installation below) + source $HOME/.profile; \ + # Enable corepack and install yarn v1 (classic) globally + corepack enable; \ + corepack install -g yarn@${YARN_VERSION} ## Ruby bundler ## Don't use -x here, as the output may be excessive RUN set -e; \ # Export ruby gem bin path echo 'export PATH=$PATH:$(ruby -r rubygems -e "puts Gem.user_dir")/bin' >> $HOME/.profile; \ - . $HOME/.profile; \ + source $HOME/.profile; \ gem install --user-install bundler; \ # Have bundler install gems in the current directory (./.bundle) by default echo -e "\n"'export BUNDLE_PATH=.bundle' >> $HOME/.profile diff --git a/8.4/Dockerfile b/8.4/Dockerfile index 7de03414..a28d7312 100644 --- a/8.4/Dockerfile +++ b/8.4/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 # check=skip=SecretsUsedInArgOrEnv (ignore false positives in ARG/ENV) -FROM php:8.4.17-fpm-bookworm AS cli +FROM php:8.4.17-fpm-trixie AS cli ARG TARGETARCH ARG DEBIAN_FRONTEND=noninteractive @@ -64,6 +64,7 @@ RUN set -xe; \ procps \ pv \ rsync \ + sqlite3 \ sudo \ supervisor \ unzip \ @@ -101,7 +102,7 @@ RUN set -xe; \ # Configure sshd (for use PHPStorm's remote interpreters and tools integrations) # http://docs.docker.com/examples/running_ssh_service/ RUN set -xe; \ - mkdir /var/run/sshd; \ + mkdir -p /var/run/sshd; \ echo 'docker:docker' | chpasswd; \ sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config; \ # SSH login fix. Otherwise user is kicked off after login @@ -217,16 +218,6 @@ RUN set -xe; \ # Cleanup apt-get clean; rm -rf /var/lib/apt/lists/* -# Install a newer SQLite version from Debian Trixie (testing) repo -# Debian Bookworm (main) ships with sqlite v3.40. Drupal 11 requires SQLite v3.45+. -# @see https://www.drupal.org/project/drupal/issues/3346338 -RUN set -xe; \ - echo "deb https://deb.debian.org/debian testing main" | tee /etc/apt/sources.list.d/testing.list; \ - apt-get update >/dev/null; \ - apt-get install -y -t testing sqlite3;\ - # Cleanup - apt-get clean; rm -rf /var/lib/apt/lists/*; rm -f /etc/apt/sources.list.d/testing.list - # All further RUN commands will run as the "docker" user USER docker SHELL ["/bin/bash", "-c"] @@ -238,20 +229,22 @@ RUN set -e; \ # Add composer bin project level and global directories to PATH # Project level comes first and thus takes precedence over the global one echo -e "\n"'export PATH="$PATH:${PROJECT_ROOT:-/var/www}/vendor/bin"' >> $HOME/.profile; \ + echo -e "\n"'export PATH="$PATH:$HOME/.config/composer/vendor/bin"' >> $HOME/.profile; \ + # Legacy composer global directory (for backward compatibility) echo -e "\n"'export PATH="$PATH:$HOME/.composer/vendor/bin"' >> $HOME/.profile; \ # Reload updated PATH from profile to make composer/etc. visible below - . $HOME/.profile; \ + source $HOME/.profile; \ # Drupal Coder & WP Coding Standards w/ a matching version of PHP_CodeSniffer # Set allow-plugins. See https://getcomposer.org/allow-plugins composer global config allow-plugins.dealerdirect/phpcodesniffer-composer-installer true; \ composer global require drupal/coder wp-coding-standards/wpcs phpcompatibility/phpcompatibility-wp; \ - # Don't fix the indentation or installed_paths will not be set correctly + # IMPORTANT: Do NOT fix the indentation or installed_paths will not be set correctly phpcs --config-set installed_paths \ -$HOME/.composer/vendor/drupal/coder/coder_sniffer/,\ -$HOME/.composer/vendor/wp-coding-standards/wpcs/,\ -$HOME/.composer/vendor/phpcompatibility/php-compatibility/PHPCompatibility/,\ -$HOME/.composer/vendor/phpcompatibility/phpcompatibility-wp/PHPCompatibilityWP,\ -$HOME/.composer/vendor/phpcompatibility/phpcompatibility-paragonie/PHPCompatibilityParagonieRandomCompat; \ +$HOME/.config/composer/vendor/drupal/coder/coder_sniffer/,\ +$HOME/.config/composer/vendor/wp-coding-standards/wpcs/,\ +$HOME/.config/composer/vendor/phpcompatibility/php-compatibility/PHPCompatibility/,\ +$HOME/.config/composer/vendor/phpcompatibility/phpcompatibility-wp/PHPCompatibilityWP,\ +$HOME/.config/composer/vendor/phpcompatibility/phpcompatibility-paragonie/PHPCompatibilityParagonieRandomCompat; \ # Cleanup composer clear-cache @@ -259,28 +252,25 @@ $HOME/.composer/vendor/phpcompatibility/phpcompatibility-paragonie/PHPCompatibil ENV \ NVM_VERSION=0.40.4 \ NODE_VERSION=24.13.0 \ - # Yarn (Classic v1) - # https://github.com/yarnpkg/yarn/releases + # yarn v1 (classic) https://github.com/yarnpkg/yarn/releases YARN_VERSION=1.22.22 # Don't use -x here, as the output may be excessive RUN set -e; \ - # NVM and a defaut Node.js version + # NVM and a default Node.js version export PROFILE="$HOME/.profile"; \ - curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v${NVM_VERSION}/install.sh | bash >/dev/null; \ - # Reload profile to load nvm (needed by Yarn installation below) - . $HOME/.profile; \ - # Yarn (Classic v1) - # Installing via npm to allow fore override with never versions via corepack - npm install -g yarn@${YARN_VERSION}; \ - # Enable corepack (allows installing project level yarn v2+ via yarn) - corepack enable + curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v${NVM_VERSION}/install.sh | bash; \ + # Load nvm right away (needed by Yarn installation below) + source $HOME/.profile; \ + # Enable corepack and install yarn v1 (classic) globally + corepack enable; \ + corepack install -g yarn@${YARN_VERSION} ## Ruby bundler ## Don't use -x here, as the output may be excessive RUN set -e; \ # Export ruby gem bin path echo 'export PATH=$PATH:$(ruby -r rubygems -e "puts Gem.user_dir")/bin' >> $HOME/.profile; \ - . $HOME/.profile; \ + source $HOME/.profile; \ gem install --user-install bundler; \ # Have bundler install gems in the current directory (./.bundle) by default echo -e "\n"'export BUNDLE_PATH=.bundle' >> $HOME/.profile diff --git a/8.5/Dockerfile b/8.5/Dockerfile index 240727ee..d306b556 100644 --- a/8.5/Dockerfile +++ b/8.5/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 # check=skip=SecretsUsedInArgOrEnv (ignore false positives in ARG/ENV) -FROM php:8.5.2-fpm-bookworm AS cli +FROM php:8.5.2-fpm-trixie AS cli ARG TARGETARCH ARG DEBIAN_FRONTEND=noninteractive @@ -64,6 +64,7 @@ RUN set -xe; \ procps \ pv \ rsync \ + sqlite3 \ sudo \ supervisor \ unzip \ @@ -101,7 +102,7 @@ RUN set -xe; \ # Configure sshd (for use PHPStorm's remote interpreters and tools integrations) # http://docs.docker.com/examples/running_ssh_service/ RUN set -xe; \ - mkdir /var/run/sshd; \ + mkdir -p /var/run/sshd; \ echo 'docker:docker' | chpasswd; \ sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config; \ # SSH login fix. Otherwise user is kicked off after login @@ -220,16 +221,6 @@ RUN set -xe; \ # Cleanup apt-get clean; rm -rf /var/lib/apt/lists/* -# Install a newer SQLite version from Debian Trixie (testing) repo -# Debian Bookworm (main) ships with sqlite v3.40. Drupal 11 requires SQLite v3.45+. -# @see https://www.drupal.org/project/drupal/issues/3346338 -RUN set -xe; \ - echo "deb https://deb.debian.org/debian testing main" | tee /etc/apt/sources.list.d/testing.list; \ - apt-get update >/dev/null; \ - apt-get install -y -t testing sqlite3;\ - # Cleanup - apt-get clean; rm -rf /var/lib/apt/lists/*; rm -f /etc/apt/sources.list.d/testing.list - # All further RUN commands will run as the "docker" user USER docker SHELL ["/bin/bash", "-c"] @@ -241,20 +232,22 @@ RUN set -e; \ # Add composer bin project level and global directories to PATH # Project level comes first and thus takes precedence over the global one echo -e "\n"'export PATH="$PATH:${PROJECT_ROOT:-/var/www}/vendor/bin"' >> $HOME/.profile; \ + echo -e "\n"'export PATH="$PATH:$HOME/.config/composer/vendor/bin"' >> $HOME/.profile; \ + # Legacy composer global directory (for backward compatibility) echo -e "\n"'export PATH="$PATH:$HOME/.composer/vendor/bin"' >> $HOME/.profile; \ # Reload updated PATH from profile to make composer/etc. visible below - . $HOME/.profile; \ + source $HOME/.profile; \ # Drupal Coder & WP Coding Standards w/ a matching version of PHP_CodeSniffer # Set allow-plugins. See https://getcomposer.org/allow-plugins composer global config allow-plugins.dealerdirect/phpcodesniffer-composer-installer true; \ composer global require drupal/coder wp-coding-standards/wpcs phpcompatibility/phpcompatibility-wp; \ - # Don't fix the indentation or installed_paths will not be set correctly + # IMPORTANT: Do NOT fix the indentation or installed_paths will not be set correctly phpcs --config-set installed_paths \ -$HOME/.composer/vendor/drupal/coder/coder_sniffer/,\ -$HOME/.composer/vendor/wp-coding-standards/wpcs/,\ -$HOME/.composer/vendor/phpcompatibility/php-compatibility/PHPCompatibility/,\ -$HOME/.composer/vendor/phpcompatibility/phpcompatibility-wp/PHPCompatibilityWP,\ -$HOME/.composer/vendor/phpcompatibility/phpcompatibility-paragonie/PHPCompatibilityParagonieRandomCompat; \ +$HOME/.config/composer/vendor/drupal/coder/coder_sniffer/,\ +$HOME/.config/composer/vendor/wp-coding-standards/wpcs/,\ +$HOME/.config/composer/vendor/phpcompatibility/php-compatibility/PHPCompatibility/,\ +$HOME/.config/composer/vendor/phpcompatibility/phpcompatibility-wp/PHPCompatibilityWP,\ +$HOME/.config/composer/vendor/phpcompatibility/phpcompatibility-paragonie/PHPCompatibilityParagonieRandomCompat; \ # Cleanup composer clear-cache @@ -262,28 +255,25 @@ $HOME/.composer/vendor/phpcompatibility/phpcompatibility-paragonie/PHPCompatibil ENV \ NVM_VERSION=0.40.4 \ NODE_VERSION=24.13.0 \ - # Yarn (Classic v1) - # https://github.com/yarnpkg/yarn/releases + # yarn v1 (classic) https://github.com/yarnpkg/yarn/releases YARN_VERSION=1.22.22 # Don't use -x here, as the output may be excessive RUN set -e; \ - # NVM and a defaut Node.js version + # NVM and a default Node.js version export PROFILE="$HOME/.profile"; \ - curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v${NVM_VERSION}/install.sh | bash >/dev/null; \ - # Reload profile to load nvm (needed by Yarn installation below) - . $HOME/.profile; \ - # Yarn (Classic v1) - # Installing via npm to allow fore override with never versions via corepack - npm install -g yarn@${YARN_VERSION}; \ - # Enable corepack (allows installing project level yarn v2+ via yarn) - corepack enable + curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v${NVM_VERSION}/install.sh | bash; \ + # Load nvm right away (needed by Yarn installation below) + source $HOME/.profile; \ + # Enable corepack and install yarn v1 (classic) globally + corepack enable; \ + corepack install -g yarn@${YARN_VERSION} ## Ruby bundler ## Don't use -x here, as the output may be excessive RUN set -e; \ # Export ruby gem bin path echo 'export PATH=$PATH:$(ruby -r rubygems -e "puts Gem.user_dir")/bin' >> $HOME/.profile; \ - . $HOME/.profile; \ + source $HOME/.profile; \ gem install --user-install bundler; \ # Have bundler install gems in the current directory (./.bundle) by default echo -e "\n"'export BUNDLE_PATH=.bundle' >> $HOME/.profile diff --git a/README.md b/README.md index f9c43634..766c53ba 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ This image(s) is part of the [Docksal](https://docksal.io) image library. ## Features -- Based on the official php-fpm Debian 12 (bookworm) images +- Based on the official php-fpm Debian 13 (trixie) images - php/php-fpm (w/ xdebug), nodejs (via nvm), python, ruby - Framework specific tools for Drupal and Wordpress - Miscellaneous cli tools for day to day web development @@ -80,11 +80,11 @@ Then, use `nvm use 23.11.0` to use it in the current session or `nvm alias defau ## Python -This image comes with a system level installed Python v3.9.x from upstream Debian 11. +This image comes with a system-level installed Python v3.13.x from upstream Debian 13. ## Ruby -This image comes with a system level installed Ruby v2.7.x from upstream Debian 11. +This image comes with a system-level installed Ruby v3.3.x from upstream Debian 13. ## Notable console tools diff --git a/tests/test.bats b/tests/test.bats index 46382bf2..98ef4ae6 100755 --- a/tests/test.bats +++ b/tests/test.bats @@ -163,12 +163,12 @@ _healthcheck_wait () # Check xdebug was enabled run make exec -e CMD='php -m' - echo "$output" | grep -e "^xdebug$" + echo "$output" | grep -E "^xdebug$" unset output # Check xdebug was enabled run make exec -e CMD='php -m' - echo "$output" | grep -e "^xhprof$" + echo "$output" | grep -E "^xhprof$" unset output # Check PHP CLI overrides @@ -247,33 +247,33 @@ _healthcheck_wait () ### Tests ### # nvm - run docker exec -u docker "$NAME" bash -lc 'nvm --version | grep "${NVM_VERSION}"' + run docker exec -u docker "$NAME" bash -lc 'nvm --version | grep "^${NVM_VERSION}"' [ "$status" -eq 0 ] unset output # nodejs - run docker exec -u docker "$NAME" bash -lc 'node --version | grep "${NODE_VERSION}"' + run docker exec -u docker "$NAME" bash -lc 'node --version | grep "^v${NODE_VERSION}"' [ "$status" -eq 0 ] unset output # yarn - run docker exec -u docker "$NAME" bash -lc 'yarn --version | grep "${YARN_VERSION}"' + run docker exec -u docker "$NAME" bash -lc 'yarn --version | grep "^${YARN_VERSION}"' [ "$status" -eq 0 ] unset output - # Stock Ruby version in Debian 12 is 3.1.x - run docker exec -u docker "$NAME" bash -lc 'ruby --version | grep "ruby 3.1"' + # Stock Ruby version in Debian 13 is 3.3.x + run docker exec -u docker "$NAME" bash -lc 'ruby --version | grep "^ruby 3.3"' [ "$status" -eq 0 ] unset output - # Stock Python version in Debian 12 is 3.11.x - run docker exec -u docker "$NAME" bash -lc 'python3 --version 2>&1 | grep "Python 3.11"' + # Stock Python version in Debian 13 is 3.13.x + run docker exec -u docker "$NAME" bash -lc 'python3 --version 2>&1 | grep "^Python 3.13"' [ "$status" -eq 0 ] unset output # Check msmtp - run docker exec -u docker "$NAME" which msmtp - echo "$output" | grep "/usr/bin/msmtp" + run docker exec -u docker "$NAME" bash -lc 'which msmtp | grep "^/usr/bin/msmtp"' + [ "$status" -eq 0 ] unset output ### Cleanup ### @@ -488,12 +488,12 @@ _healthcheck_wait () run docker exec -u docker "$NAME" bash -lc "phpcs -i | sed 's/,//g'" # The trailing space below allows comparing all values the same way: " " (needed for the last value to match). output="${output} " - [[ "${output}" =~ " Drupal " ]] - [[ "${output}" =~ " DrupalPractice " ]] - [[ "${output}" =~ " WordPress " ]] # Includes WordPress-Core, WordPress-Docs and WordPress-Extra - [[ "${output}" =~ " PHPCompatibility " ]] - [[ "${output}" =~ " PHPCompatibilityWP " ]] - [[ "${output}" =~ " PHPCompatibilityParagonieRandomCompat " ]] + echo "$output" | grep " Drupal " + echo "$output" | grep " DrupalPractice " + echo "$output" | grep " WordPress " # Includes WordPress-Core, WordPress-Docs and WordPress-Extra + echo "$output" | grep " PHPCompatibility " + echo "$output" | grep " PHPCompatibilityWP " + echo "$output" | grep " PHPCompatibilityParagonieRandomCompat " unset output ### Cleanup ###