diff --git a/.github/workflows/default.yaml b/.github/workflows/default.yaml index 2f19eeea..06568ac8 100644 --- a/.github/workflows/default.yaml +++ b/.github/workflows/default.yaml @@ -34,27 +34,27 @@ jobs: - platform: linux/amd64 arch: amd64 - version: '8.0' + version: '8.1' - platform: linux/amd64 arch: amd64 - version: '8.1' + version: '8.2' - platform: linux/amd64 arch: amd64 - version: '8.2' + version: '8.3' - platform: linux/arm64 arch: arm64 - version: '8.0' + version: '8.1' - platform: linux/arm64 arch: arm64 - version: '8.1' + version: '8.2' - platform: linux/arm64 arch: arm64 - version: '8.2' + version: '8.3' env: ARCH: ${{ matrix.arch }} @@ -64,7 +64,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Environment variables run: | @@ -92,14 +92,14 @@ jobs: docker info - name: Login to Docker Hub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - # Build and cache image in the registry name: Build image - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v5 with: context: ${{ env.BUILD_DIR }} file: ${{ env.BUILD_DIR }}/Dockerfile @@ -123,27 +123,27 @@ jobs: - platform: linux/amd64 arch: amd64 - version: '8.0' + version: '8.1' - platform: linux/amd64 arch: amd64 - version: '8.1' + version: '8.2' - platform: linux/amd64 arch: amd64 - version: '8.2' + version: '8.3' - platform: linux/arm64 arch: arm64 - version: '8.0' + version: '8.1' - platform: linux/arm64 arch: arm64 - version: '8.1' + version: '8.2' - platform: linux/arm64 arch: arm64 - version: '8.2' + version: '8.3' env: ARCH: ${{ matrix.arch }} @@ -158,7 +158,7 @@ jobs: bats-version: '1.3.0' - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Environment variables run: | @@ -201,10 +201,12 @@ jobs: # Dynamic variable names cannot be used when mapping step outputs to job outputs. # Step outputs cannot be accessed directly from other jobs. Dead end. - name: Store test results - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: - name: test-results + name: test-results-${{ env.GIT_SHA7 }}-${{ env.VERSION_PREFIX }}${{ env.VERSION }}-${{ env.ARCH }} path: ${{ github.workspace }}/test-results-*.txt + if-no-files-found: error + overwrite: true push: name: "Push: ${{ matrix.version }}/multi" @@ -217,9 +219,9 @@ jobs: strategy: matrix: version: - - '8.0' - '8.1' - '8.2' + - '8.3' env: VERSION_PREFIX: php @@ -228,7 +230,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Environment variables run: | @@ -239,15 +241,16 @@ jobs: - # Login to Docker Hub name: Login to Docker Hub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Retrieve test results - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4 with: - name: test-results + pattern: test-results-${{ env.GIT_SHA7 }}-* + merge-multiple: true - # Generate persistent tags (edge, stable, release) name: Docker image tags diff --git a/8.1/Dockerfile b/8.1/Dockerfile index 90174cda..a31a0102 100644 --- a/8.1/Dockerfile +++ b/8.1/Dockerfile @@ -1,4 +1,4 @@ -FROM php:8.1.25-fpm-bullseye as cli +FROM php:8.1.27-fpm-bookworm as cli ARG TARGETARCH ARG DEBIAN_FRONTEND=noninteractive @@ -28,16 +28,6 @@ RUN set -xe; \ localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 ENV LC_ALL en_US.utf8 -# Enable additional repos -RUN set -xe; \ - sed -i 's/main/main contrib non-free/' /etc/apt/sources.list; \ - # blackfire.io repo - curl -fsSL https://packages.blackfire.io/gpg.key | apt-key add -; \ - echo "deb https://packages.blackfire.io/debian any main" | tee /etc/apt/sources.list.d/blackfire.list; \ - # git-lfs repo - curl -fsSL https://packagecloud.io/github/git-lfs/gpgkey | apt-key add -; \ - echo 'deb https://packagecloud.io/github/git-lfs/debian bullseye main' | tee /etc/apt/sources.list.d/github_git-lfs.list; - # Additional packages RUN set -xe; \ # Create man direcotries, otherwise some packages may not install (e.g. postgresql-client) @@ -140,14 +130,13 @@ RUN set -xe; \ apt-get update >/dev/null; \ apt-get -y --no-install-recommends install >/dev/null \ $buildDeps \ - blackfire-php \ libc-client2007e \ libfreetype6 \ libgpgme11 \ - libicu67 \ + libicu72 \ libjpeg62-turbo \ - libldap-2.4-2 \ - libmagickcore-6.q16-*-extra \ + libldap-2.5-0 \ + libmagickcore-6.q16-6-extra \ libmagickwand-6.q16-6 \ libmemcached11 \ libmemcachedutil2 \ @@ -199,7 +188,7 @@ RUN set -xe; \ imagick \ memcached \ redis \ - ssh2-beta \ + ssh2 \ xdebug \ xhprof \ ;\ @@ -219,11 +208,9 @@ RUN set -xe; \ # MSSQL PHP client RUN set -xe; \ - # Repo for msodbcsql18 (MS ODBC driver), required by pecl/sqlsrv and pecl/pdo_sqlsrv - curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | apt-key add -; \ - # TODO: Using Ubuntu 22.04 packages as a temporary fix (until addressed upstream in MS repos). - #curl -fsSL https://packages.microsoft.com/config/debian/11/prod.list -o /etc/apt/sources.list.d/mssql.list; \ - curl -fsSL https://packages.microsoft.com/config/ubuntu/22.04/prod.list -o /etc/apt/sources.list.d/mssql.list; \ + # Repo and key for msodbcsql18 (MS ODBC driver), required by pecl/sqlsrv and pecl/pdo_sqlsrv + curl -fsSL https://packages.microsoft.com/config/debian/12/prod.list -o /etc/apt/sources.list.d/mssql.list; \ + curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg; \ \ buildDeps=" \ unixodbc-dev \ @@ -253,16 +240,16 @@ RUN set -xe; \ ENV \ COMPOSER_DEFAULT_VERSION=2 \ COMPOSER_VERSION=1.10.27 \ - COMPOSER2_VERSION=2.6.5 \ + COMPOSER2_VERSION=2.7.0 \ DRUSH_VERSION=8.4.12 \ DRUPAL_CONSOLE_LAUNCHER_VERSION=1.9.7 \ WPCLI_VERSION=2.9.0 \ - BLACKFIRE_VERSION=2.10.0 \ - PLATFORMSH_CLI_VERSION=4.10.4 \ - ACQUIA_CLI_VERSION=2.18.0 \ - TERMINUS_VERSION=3.2.2 \ - JQ_VERSION=1.7 \ - YQ_VERSION=4.35.2 + # platformsh/legacy-cli + PLATFORMSH_CLI_VERSION=4.14.1 \ + ACQUIA_CLI_VERSION=2.22.1 \ + TERMINUS_VERSION=3.3.3 \ + JQ_VERSION=1.7.1 \ + YQ_VERSION=4.40.5 RUN set -xe; \ # Composer 1.x curl -fsSL "https://github.com/composer/composer/releases/download/${COMPOSER_VERSION}/composer.phar" -o /usr/local/bin/composer1; \ @@ -274,10 +261,6 @@ RUN set -xe; \ curl -fsSL "https://github.com/hechoendrupal/drupal-console-launcher/releases/download/${DRUPAL_CONSOLE_LAUNCHER_VERSION}/drupal.phar" -o /usr/local/bin/drupal; \ # Wordpress CLI curl -fsSL "https://github.com/wp-cli/wp-cli/releases/download/v${WPCLI_VERSION}/wp-cli-${WPCLI_VERSION}.phar" -o /usr/local/bin/wp; \ - # Blackfire CLI - # Find out the most recent version number: - # curl -X GET -Is https://blackfire.io/api/v1/releases/cli/linux/amd64 | grep location | awk '{print $2}' - curl -fsSL "https://packages.blackfire.io/binaries/blackfire/${BLACKFIRE_VERSION}/blackfire-linux_${TARGETARCH}" -o /usr/local/bin/blackfire; \ # Platform.sh CLI curl -fsSL "https://github.com/platformsh/legacy-cli/releases/download/v${PLATFORMSH_CLI_VERSION}/platform.phar" -o /usr/local/bin/platform; \ # Acquia CLI @@ -291,7 +274,7 @@ RUN set -xe; \ # Set Default Composer Version ln -s /usr/local/bin/composer${COMPOSER_DEFAULT_VERSION} /usr/local/bin/composer; \ # Make all downloaded binaries executable in one shot - (cd /usr/local/bin && chmod +x composer1 composer2 drush8 drupal wp blackfire platform acli terminus jq yq); + (cd /usr/local/bin && chmod +x composer1 composer2 drush8 drupal wp platform acli terminus jq yq); # Install Python 3 + pip from Debian repos RUN set -xe; \ @@ -342,8 +325,9 @@ $HOME/.composer/vendor/phpcompatibility/phpcompatibility-paragonie/PHPCompatibil # Node.js (installed as user) ENV \ - NVM_VERSION=0.39.5 \ - NODE_VERSION=18.17.0 \ + NVM_VERSION=0.39.7 \ + NODE_VERSION=20.11.0 \ + # yarn releases above 1.22.19 don't install YARN_VERSION=1.22.19 # Don't use -x here, as the output may be excessive RUN set -e; \ @@ -356,52 +340,6 @@ RUN set -e; \ export YARN_PROFILE="$HOME/.profile"; \ curl -fsSL https://yarnpkg.com/install.sh | bash -s -- --version ${YARN_VERSION} >/dev/null -## Ruby (installed as user) via rvm -## Note: Disabled. rvm + its build dependecies bloat the image (~80MB) -## Debian 11 ships with Ruby 2.7, so we'll stick with that by default. -## It is still possible for the end user to switch to a different Ruby version via rvm. -#ENV \ -# RVM_VERSION_INSTALL=1.29.10 \ -# RUBY_VERSION_INSTALL=2.7.2 -## 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; \ -# # Public GPG servers are not realiable, so downloading keys from rvm.io instead. -# #gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB -# # Import and trust rvm keys -# # mpapis@gmail.com -# curl -sSL https://rvm.io/mpapis.asc | gpg --batch --import -; \ -# echo 409B6B1796C275462A1703113804BB82D39DC0E3:6: | gpg --batch --import-ownertrust; \ -# # piotr.kuczynski@gmail.com -# curl -sSL https://rvm.io/pkuczynski.asc | gpg --batch --import -; \ -# echo 7D2BAF1CF37B13E2069D6956105BD0E739499BDB:6: | gpg --batch --import-ownertrust; \ -# \ -# echo 'rvm_autoupdate_flag=0' >> $HOME/.rvmrc; \ -# echo 'rvm_silence_path_mismatch_check_flag=1' >> $HOME/.rvmrc; \ -# curl -fsSL https://raw.githubusercontent.com/rvm/rvm/${RVM_VERSION_INSTALL}/binscripts/rvm-installer | bash -s -- --ignore-dotfiles --version ${RVM_VERSION_INSTALL}; \ -# { \ -# echo ''; \ -# echo 'export PATH="$PATH:$HOME/.rvm/bin"'; \ -# echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"'; \ -# } >> $HOME/.profile; \ -# # Reload $HOME/.profile to apply settings for the current shell -# . $HOME/.profile; \ -# \ -# # rvm.io does not currently have ruby binaries for Debian 9, so Ruby is compiled from source, which requires a bunch -# # of extra dependencies installed (rvm installs these automatically), which bloat this image: -# # rvm/ruby required packages: gawk, automake, bison, libffi-dev, libgdbm-dev, libncurses5-dev, libsqlite3-dev, libtool, libyaml-dev, sqlite3, zlib1g-dev, libgmp-dev, libreadline-dev, libssl-dev -# rvm install ruby-${RUBY_VERSION_INSTALL}; \ -# rvm use ruby-${RUBY_VERSION_INSTALL} --default; \ -# \ -# gem install --user-install bundler; \ -# # Have bundler install gems locally (./.bundle) by default -# echo -e "\n"'export BUNDLE_PATH=.bundle' >> $HOME/.profile; \ -# \ -# rvm cleanup all; \ -# rvm gemset globalcache enable - ## Ruby bundler ## Don't use -x here, as the output may be excessive RUN set -e; \ @@ -412,38 +350,6 @@ RUN set -e; \ # Have bundler install gems in the current directory (./.bundle) by default echo -e "\n"'export BUNDLE_PATH=.bundle' >> $HOME/.profile -# Python (installed as user) via pyenv -# Note: Disabled. pyenv + its build dependecies bloat the image (~300MB). -# Debian 10 ships with Python 3.7, so we'll stick with that by default. -# It is still possible for the end user to switch to a different python version via pyenv. -#ENV \ -# PYENV_VERSION_INSTALL=1.2.21 \ -# PYTHON_VERSION_INSTALL=3.8.3 -#RUN set -xe; \ -# # pyenv requires a bunch of build dependencies installed, which would bloat this image -# # See https://github.com/pyenv/pyenv/wiki/Common-build-problems#prerequisites -# sudo apt-get update >/dev/null; \ -# sudo apt-get -y --no-install-recommends install >/dev/null \ -# build-essential libssl-dev zlib1g-dev libbz2-dev \ -# libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ -# xz-utils tk-dev libffi-dev liblzma-dev python-openssl git \ -# ;\ -# # Cleanup -# sudo apt-get clean; sudo rm -rf /var/lib/apt/lists/*; \ -# \ -# git clone --depth 1 -b v${PYENV_VERSION_INSTALL} https://github.com/pyenv/pyenv.git $HOME/.pyenv; \ -# rm -rf $HOME/.pyenv/.git; \ -# { \ -# echo ''; \ -# echo 'export PYENV_ROOT="$HOME/.pyenv"'; \ -# echo 'export PATH="$PYENV_ROOT/bin:$PATH"'; \ -# echo 'eval "$(pyenv init -)"'; \ -# } >> $HOME/.profile; \ -# # Reload $HOME/.profile to apply settings for the current shell -# . $HOME/.profile; \ -# pyenv install ${PYTHON_VERSION_INSTALL}; \ -# pyenv global ${PYTHON_VERSION_INSTALL} - # Notify web container about started fin exec RUN echo '(/opt/ping-web.sh &)' >> $HOME/.profile @@ -508,9 +414,9 @@ USER docker ARG HOME=/home/docker ENV \ - CODE_SERVER_VERSION=4.10.1 \ - VSCODE_GITLENS_VERSION=13.2.2 \ - VSCODE_XDEBUG_VERSION=1.32.0 \ + CODE_SERVER_VERSION=4.20.1 \ + VSCODE_GITLENS_VERSION=14.7.0 \ + VSCODE_XDEBUG_VERSION=1.34.0 \ VSCODE_HOME="${HOME}/code-server" # Install code-server @@ -526,7 +432,7 @@ COPY --chown=docker:docker config/code-server ${VSCODE_HOME} # Note: Have to use --user-data-dir with --install-extension instead of --config RUN set -xe; \ code-server --user-data-dir=${VSCODE_HOME} --install-extension eamodio.gitlens@${VSCODE_GITLENS_VERSION}; \ - code-server --user-data-dir=${VSCODE_HOME} --install-extension felixfbecker.php-debug@${VSCODE_XDEBUG_VERSION} + code-server --user-data-dir=${VSCODE_HOME} --install-extension xdebug.php-debug@${VSCODE_XDEBUG_VERSION} # Switch back to root (IMPORTANT!) USER root diff --git a/8.1/config/php/zz-php.ini b/8.1/config/php/zz-php.ini index aaf78a2e..c7ece851 100644 --- a/8.1/config/php/zz-php.ini +++ b/8.1/config/php/zz-php.ini @@ -14,6 +14,3 @@ sendmail_path = '/usr/bin/msmtp -t --host=mail --port=1025 --from=docker@cli' ; Extention settings [opcache] opcache.memory_consumption = 128 -[blackfire] -blackfire.agent_socket = 'tcp://blackfire:8307' -blackfire.apm_enabled = 0 diff --git a/8.1/tests/php-modules.sh b/8.1/tests/php-modules.sh index 0d671ced..a74431a5 100755 --- a/8.1/tests/php-modules.sh +++ b/8.1/tests/php-modules.sh @@ -4,7 +4,6 @@ php_modules_amd64=\ '[PHP Modules] apcu bcmath -blackfire bz2 calendar Core @@ -67,14 +66,12 @@ zlib [Zend Modules] Zend OPcache -blackfire ' php_modules_arm64=\ '[PHP Modules] apcu bcmath -blackfire bz2 calendar Core @@ -137,7 +134,6 @@ zlib [Zend Modules] Zend OPcache -blackfire ' # Use the docker reported architecture and not the hosts (uname -m). diff --git a/8.2/Dockerfile b/8.2/Dockerfile index 1783f413..b8be9313 100644 --- a/8.2/Dockerfile +++ b/8.2/Dockerfile @@ -1,4 +1,4 @@ -FROM php:8.2.12-fpm-bullseye as cli +FROM php:8.2.15-fpm-bookworm as cli ARG TARGETARCH ARG DEBIAN_FRONTEND=noninteractive @@ -28,16 +28,6 @@ RUN set -xe; \ localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 ENV LC_ALL en_US.utf8 -# Enable additional repos -RUN set -xe; \ - sed -i 's/main/main contrib non-free/' /etc/apt/sources.list; \ - # blackfire.io repo - curl -fsSL https://packages.blackfire.io/gpg.key | apt-key add -; \ - echo "deb https://packages.blackfire.io/debian any main" | tee /etc/apt/sources.list.d/blackfire.list; \ - # git-lfs repo - curl -fsSL https://packagecloud.io/github/git-lfs/gpgkey | apt-key add -; \ - echo 'deb https://packagecloud.io/github/git-lfs/debian bullseye main' | tee /etc/apt/sources.list.d/github_git-lfs.list; - # Additional packages RUN set -xe; \ # Create man direcotries, otherwise some packages may not install (e.g. postgresql-client) @@ -140,14 +130,13 @@ RUN set -xe; \ apt-get update >/dev/null; \ apt-get -y --no-install-recommends install >/dev/null \ $buildDeps \ - blackfire-php \ libc-client2007e \ libfreetype6 \ libgpgme11 \ - libicu67 \ + libicu72 \ libjpeg62-turbo \ - libldap-2.4-2 \ - libmagickcore-6.q16-*-extra \ + libldap-2.5-0 \ + libmagickcore-6.q16-6-extra \ libmagickwand-6.q16-6 \ libmemcached11 \ libmemcachedutil2 \ @@ -175,6 +164,7 @@ RUN set -xe; \ bz2 \ calendar\ exif \ + ftp \ gd \ gettext \ imap \ @@ -199,7 +189,7 @@ RUN set -xe; \ imagick \ memcached \ redis \ - ssh2-beta \ + ssh2 \ xdebug \ xhprof \ ;\ @@ -219,11 +209,9 @@ RUN set -xe; \ # MSSQL PHP client RUN set -xe; \ - # Repo for msodbcsql18 (MS ODBC driver), required by pecl/sqlsrv and pecl/pdo_sqlsrv - curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | apt-key add -; \ - # TODO: Using Ubuntu 22.04 packages as a temporary fix (until addressed upstream in MS repos). - #curl -fsSL https://packages.microsoft.com/config/debian/11/prod.list -o /etc/apt/sources.list.d/mssql.list; \ - curl -fsSL https://packages.microsoft.com/config/ubuntu/22.04/prod.list -o /etc/apt/sources.list.d/mssql.list; \ + # Repo and key for msodbcsql18 (MS ODBC driver), required by pecl/sqlsrv and pecl/pdo_sqlsrv + curl -fsSL https://packages.microsoft.com/config/debian/12/prod.list -o /etc/apt/sources.list.d/mssql.list; \ + curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg; \ \ buildDeps=" \ unixodbc-dev \ @@ -253,16 +241,16 @@ RUN set -xe; \ ENV \ COMPOSER_DEFAULT_VERSION=2 \ COMPOSER_VERSION=1.10.27 \ - COMPOSER2_VERSION=2.6.5 \ + COMPOSER2_VERSION=2.7.0 \ DRUSH_VERSION=8.4.12 \ DRUPAL_CONSOLE_LAUNCHER_VERSION=1.9.7 \ WPCLI_VERSION=2.9.0 \ - BLACKFIRE_VERSION=2.10.0 \ - PLATFORMSH_CLI_VERSION=4.10.4 \ - ACQUIA_CLI_VERSION=2.18.0 \ - TERMINUS_VERSION=3.2.2 \ - JQ_VERSION=1.7 \ - YQ_VERSION=4.35.2 + # platformsh/legacy-cli + PLATFORMSH_CLI_VERSION=4.14.1 \ + ACQUIA_CLI_VERSION=2.22.1 \ + TERMINUS_VERSION=3.3.3 \ + JQ_VERSION=1.7.1 \ + YQ_VERSION=4.40.5 RUN set -xe; \ # Composer 1.x curl -fsSL "https://github.com/composer/composer/releases/download/${COMPOSER_VERSION}/composer.phar" -o /usr/local/bin/composer1; \ @@ -274,10 +262,6 @@ RUN set -xe; \ curl -fsSL "https://github.com/hechoendrupal/drupal-console-launcher/releases/download/${DRUPAL_CONSOLE_LAUNCHER_VERSION}/drupal.phar" -o /usr/local/bin/drupal; \ # Wordpress CLI curl -fsSL "https://github.com/wp-cli/wp-cli/releases/download/v${WPCLI_VERSION}/wp-cli-${WPCLI_VERSION}.phar" -o /usr/local/bin/wp; \ - # Blackfire CLI - # Find out the most recent version number: - # curl -X GET -Is https://blackfire.io/api/v1/releases/cli/linux/amd64 | grep location | awk '{print $2}' - curl -fsSL "https://packages.blackfire.io/binaries/blackfire/${BLACKFIRE_VERSION}/blackfire-linux_${TARGETARCH}" -o /usr/local/bin/blackfire; \ # Platform.sh CLI curl -fsSL "https://github.com/platformsh/legacy-cli/releases/download/v${PLATFORMSH_CLI_VERSION}/platform.phar" -o /usr/local/bin/platform; \ # Acquia CLI @@ -291,7 +275,7 @@ RUN set -xe; \ # Set Default Composer Version ln -s /usr/local/bin/composer${COMPOSER_DEFAULT_VERSION} /usr/local/bin/composer; \ # Make all downloaded binaries executable in one shot - (cd /usr/local/bin && chmod +x composer1 composer2 drush8 drupal wp blackfire platform acli terminus jq yq); + (cd /usr/local/bin && chmod +x composer1 composer2 drush8 drupal wp platform acli terminus jq yq); # Install Python 3 + pip from Debian repos RUN set -xe; \ @@ -342,8 +326,9 @@ $HOME/.composer/vendor/phpcompatibility/phpcompatibility-paragonie/PHPCompatibil # Node.js (installed as user) ENV \ - NVM_VERSION=0.39.5 \ - NODE_VERSION=18.17.0 \ + NVM_VERSION=0.39.7 \ + NODE_VERSION=20.11.0 \ + # yarn releases above 1.22.19 don't install YARN_VERSION=1.22.19 # Don't use -x here, as the output may be excessive RUN set -e; \ @@ -356,52 +341,6 @@ RUN set -e; \ export YARN_PROFILE="$HOME/.profile"; \ curl -fsSL https://yarnpkg.com/install.sh | bash -s -- --version ${YARN_VERSION} >/dev/null -## Ruby (installed as user) via rvm -## Note: Disabled. rvm + its build dependecies bloat the image (~80MB) -## Debian 11 ships with Ruby 2.7, so we'll stick with that by default. -## It is still possible for the end user to switch to a different Ruby version via rvm. -#ENV \ -# RVM_VERSION_INSTALL=1.29.10 \ -# RUBY_VERSION_INSTALL=2.7.2 -## 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; \ -# # Public GPG servers are not realiable, so downloading keys from rvm.io instead. -# #gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB -# # Import and trust rvm keys -# # mpapis@gmail.com -# curl -sSL https://rvm.io/mpapis.asc | gpg --batch --import -; \ -# echo 409B6B1796C275462A1703113804BB82D39DC0E3:6: | gpg --batch --import-ownertrust; \ -# # piotr.kuczynski@gmail.com -# curl -sSL https://rvm.io/pkuczynski.asc | gpg --batch --import -; \ -# echo 7D2BAF1CF37B13E2069D6956105BD0E739499BDB:6: | gpg --batch --import-ownertrust; \ -# \ -# echo 'rvm_autoupdate_flag=0' >> $HOME/.rvmrc; \ -# echo 'rvm_silence_path_mismatch_check_flag=1' >> $HOME/.rvmrc; \ -# curl -fsSL https://raw.githubusercontent.com/rvm/rvm/${RVM_VERSION_INSTALL}/binscripts/rvm-installer | bash -s -- --ignore-dotfiles --version ${RVM_VERSION_INSTALL}; \ -# { \ -# echo ''; \ -# echo 'export PATH="$PATH:$HOME/.rvm/bin"'; \ -# echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"'; \ -# } >> $HOME/.profile; \ -# # Reload $HOME/.profile to apply settings for the current shell -# . $HOME/.profile; \ -# \ -# # rvm.io does not currently have ruby binaries for Debian 9, so Ruby is compiled from source, which requires a bunch -# # of extra dependencies installed (rvm installs these automatically), which bloat this image: -# # rvm/ruby required packages: gawk, automake, bison, libffi-dev, libgdbm-dev, libncurses5-dev, libsqlite3-dev, libtool, libyaml-dev, sqlite3, zlib1g-dev, libgmp-dev, libreadline-dev, libssl-dev -# rvm install ruby-${RUBY_VERSION_INSTALL}; \ -# rvm use ruby-${RUBY_VERSION_INSTALL} --default; \ -# \ -# gem install --user-install bundler; \ -# # Have bundler install gems locally (./.bundle) by default -# echo -e "\n"'export BUNDLE_PATH=.bundle' >> $HOME/.profile; \ -# \ -# rvm cleanup all; \ -# rvm gemset globalcache enable - ## Ruby bundler ## Don't use -x here, as the output may be excessive RUN set -e; \ @@ -412,38 +351,6 @@ RUN set -e; \ # Have bundler install gems in the current directory (./.bundle) by default echo -e "\n"'export BUNDLE_PATH=.bundle' >> $HOME/.profile -# Python (installed as user) via pyenv -# Note: Disabled. pyenv + its build dependecies bloat the image (~300MB). -# Debian 10 ships with Python 3.7, so we'll stick with that by default. -# It is still possible for the end user to switch to a different python version via pyenv. -#ENV \ -# PYENV_VERSION_INSTALL=1.2.21 \ -# PYTHON_VERSION_INSTALL=3.8.3 -#RUN set -xe; \ -# # pyenv requires a bunch of build dependencies installed, which would bloat this image -# # See https://github.com/pyenv/pyenv/wiki/Common-build-problems#prerequisites -# sudo apt-get update >/dev/null; \ -# sudo apt-get -y --no-install-recommends install >/dev/null \ -# build-essential libssl-dev zlib1g-dev libbz2-dev \ -# libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ -# xz-utils tk-dev libffi-dev liblzma-dev python-openssl git \ -# ;\ -# # Cleanup -# sudo apt-get clean; sudo rm -rf /var/lib/apt/lists/*; \ -# \ -# git clone --depth 1 -b v${PYENV_VERSION_INSTALL} https://github.com/pyenv/pyenv.git $HOME/.pyenv; \ -# rm -rf $HOME/.pyenv/.git; \ -# { \ -# echo ''; \ -# echo 'export PYENV_ROOT="$HOME/.pyenv"'; \ -# echo 'export PATH="$PYENV_ROOT/bin:$PATH"'; \ -# echo 'eval "$(pyenv init -)"'; \ -# } >> $HOME/.profile; \ -# # Reload $HOME/.profile to apply settings for the current shell -# . $HOME/.profile; \ -# pyenv install ${PYTHON_VERSION_INSTALL}; \ -# pyenv global ${PYTHON_VERSION_INSTALL} - # Notify web container about started fin exec RUN echo '(/opt/ping-web.sh &)' >> $HOME/.profile @@ -508,9 +415,9 @@ USER docker ARG HOME=/home/docker ENV \ - CODE_SERVER_VERSION=4.10.1 \ - VSCODE_GITLENS_VERSION=13.2.2 \ - VSCODE_XDEBUG_VERSION=1.32.0 \ + CODE_SERVER_VERSION=4.20.1 \ + VSCODE_GITLENS_VERSION=14.7.0 \ + VSCODE_XDEBUG_VERSION=1.34.0 \ VSCODE_HOME="${HOME}/code-server" # Install code-server @@ -526,7 +433,7 @@ COPY --chown=docker:docker config/code-server ${VSCODE_HOME} # Note: Have to use --user-data-dir with --install-extension instead of --config RUN set -xe; \ code-server --user-data-dir=${VSCODE_HOME} --install-extension eamodio.gitlens@${VSCODE_GITLENS_VERSION}; \ - code-server --user-data-dir=${VSCODE_HOME} --install-extension felixfbecker.php-debug@${VSCODE_XDEBUG_VERSION} + code-server --user-data-dir=${VSCODE_HOME} --install-extension xdebug.php-debug@${VSCODE_XDEBUG_VERSION} # Switch back to root (IMPORTANT!) USER root diff --git a/8.2/config/php/zz-php.ini b/8.2/config/php/zz-php.ini index aaf78a2e..c7ece851 100644 --- a/8.2/config/php/zz-php.ini +++ b/8.2/config/php/zz-php.ini @@ -14,6 +14,3 @@ sendmail_path = '/usr/bin/msmtp -t --host=mail --port=1025 --from=docker@cli' ; Extention settings [opcache] opcache.memory_consumption = 128 -[blackfire] -blackfire.agent_socket = 'tcp://blackfire:8307' -blackfire.apm_enabled = 0 diff --git a/8.2/tests/php-modules.sh b/8.2/tests/php-modules.sh index c869be2b..e0a1f3fd 100755 --- a/8.2/tests/php-modules.sh +++ b/8.2/tests/php-modules.sh @@ -4,7 +4,6 @@ php_modules_amd64=\ '[PHP Modules] apcu bcmath -blackfire bz2 calendar Core @@ -68,14 +67,12 @@ zlib [Zend Modules] Zend OPcache -blackfire ' php_modules_arm64=\ '[PHP Modules] apcu bcmath -blackfire bz2 calendar Core @@ -139,7 +136,6 @@ zlib [Zend Modules] Zend OPcache -blackfire ' # Use the docker reported architecture and not the hosts (uname -m). diff --git a/8.0/.dockerignore b/8.3/.dockerignore similarity index 100% rename from 8.0/.dockerignore rename to 8.3/.dockerignore diff --git a/8.0/Dockerfile b/8.3/Dockerfile similarity index 70% rename from 8.0/Dockerfile rename to 8.3/Dockerfile index e70717a7..42c529f0 100644 --- a/8.0/Dockerfile +++ b/8.3/Dockerfile @@ -1,4 +1,4 @@ -FROM php:8.0.30-fpm-bullseye as cli +FROM php:8.3.2-fpm-bookworm as cli ARG TARGETARCH ARG DEBIAN_FRONTEND=noninteractive @@ -28,16 +28,6 @@ RUN set -xe; \ localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 ENV LC_ALL en_US.utf8 -# Enable additional repos -RUN set -xe; \ - sed -i 's/main/main contrib non-free/' /etc/apt/sources.list; \ - # blackfire.io repo - curl -fsSL https://packages.blackfire.io/gpg.key | apt-key add -; \ - echo "deb https://packages.blackfire.io/debian any main" | tee /etc/apt/sources.list.d/blackfire.list; \ - # git-lfs repo - curl -fsSL https://packagecloud.io/github/git-lfs/gpgkey | apt-key add -; \ - echo 'deb https://packagecloud.io/github/git-lfs/debian bullseye main' | tee /etc/apt/sources.list.d/github_git-lfs.list; - # Additional packages RUN set -xe; \ # Create man direcotries, otherwise some packages may not install (e.g. postgresql-client) @@ -140,14 +130,13 @@ RUN set -xe; \ apt-get update >/dev/null; \ apt-get -y --no-install-recommends install >/dev/null \ $buildDeps \ - blackfire-php \ libc-client2007e \ libfreetype6 \ libgpgme11 \ - libicu67 \ + libicu72 \ libjpeg62-turbo \ - libldap-2.4-2 \ - libmagickcore-6.q16-*-extra \ + libldap-2.5-0 \ + libmagickcore-6.q16-6-extra \ libmagickwand-6.q16-6 \ libmemcached11 \ libmemcachedutil2 \ @@ -175,6 +164,7 @@ RUN set -xe; \ bz2 \ calendar\ exif \ + ftp \ gd \ gettext \ imap \ @@ -196,17 +186,26 @@ RUN set -xe; \ pecl install >/dev/null /dev/null -## Ruby (installed as user) via rvm -## Note: Disabled. rvm + its build dependecies bloat the image (~80MB) -## Debian 11 ships with Ruby 2.7, so we'll stick with that by default. -## It is still possible for the end user to switch to a different Ruby version via rvm. -#ENV \ -# RVM_VERSION_INSTALL=1.29.10 \ -# RUBY_VERSION_INSTALL=2.7.2 -## 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; \ -# # Public GPG servers are not realiable, so downloading keys from rvm.io instead. -# #gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB -# # Import and trust rvm keys -# # mpapis@gmail.com -# curl -sSL https://rvm.io/mpapis.asc | gpg --batch --import -; \ -# echo 409B6B1796C275462A1703113804BB82D39DC0E3:6: | gpg --batch --import-ownertrust; \ -# # piotr.kuczynski@gmail.com -# curl -sSL https://rvm.io/pkuczynski.asc | gpg --batch --import -; \ -# echo 7D2BAF1CF37B13E2069D6956105BD0E739499BDB:6: | gpg --batch --import-ownertrust; \ -# \ -# echo 'rvm_autoupdate_flag=0' >> $HOME/.rvmrc; \ -# echo 'rvm_silence_path_mismatch_check_flag=1' >> $HOME/.rvmrc; \ -# curl -fsSL https://raw.githubusercontent.com/rvm/rvm/${RVM_VERSION_INSTALL}/binscripts/rvm-installer | bash -s -- --ignore-dotfiles --version ${RVM_VERSION_INSTALL}; \ -# { \ -# echo ''; \ -# echo 'export PATH="$PATH:$HOME/.rvm/bin"'; \ -# echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"'; \ -# } >> $HOME/.profile; \ -# # Reload $HOME/.profile to apply settings for the current shell -# . $HOME/.profile; \ -# \ -# # rvm.io does not currently have ruby binaries for Debian 9, so Ruby is compiled from source, which requires a bunch -# # of extra dependencies installed (rvm installs these automatically), which bloat this image: -# # rvm/ruby required packages: gawk, automake, bison, libffi-dev, libgdbm-dev, libncurses5-dev, libsqlite3-dev, libtool, libyaml-dev, sqlite3, zlib1g-dev, libgmp-dev, libreadline-dev, libssl-dev -# rvm install ruby-${RUBY_VERSION_INSTALL}; \ -# rvm use ruby-${RUBY_VERSION_INSTALL} --default; \ -# \ -# gem install --user-install bundler; \ -# # Have bundler install gems locally (./.bundle) by default -# echo -e "\n"'export BUNDLE_PATH=.bundle' >> $HOME/.profile; \ -# \ -# rvm cleanup all; \ -# rvm gemset globalcache enable - ## Ruby bundler ## Don't use -x here, as the output may be excessive RUN set -e; \ @@ -412,38 +360,6 @@ RUN set -e; \ # Have bundler install gems in the current directory (./.bundle) by default echo -e "\n"'export BUNDLE_PATH=.bundle' >> $HOME/.profile -# Python (installed as user) via pyenv -# Note: Disabled. pyenv + its build dependecies bloat the image (~300MB). -# Debian 10 ships with Python 3.7, so we'll stick with that by default. -# It is still possible for the end user to switch to a different python version via pyenv. -#ENV \ -# PYENV_VERSION_INSTALL=1.2.21 \ -# PYTHON_VERSION_INSTALL=3.8.3 -#RUN set -xe; \ -# # pyenv requires a bunch of build dependencies installed, which would bloat this image -# # See https://github.com/pyenv/pyenv/wiki/Common-build-problems#prerequisites -# sudo apt-get update >/dev/null; \ -# sudo apt-get -y --no-install-recommends install >/dev/null \ -# build-essential libssl-dev zlib1g-dev libbz2-dev \ -# libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ -# xz-utils tk-dev libffi-dev liblzma-dev python-openssl git \ -# ;\ -# # Cleanup -# sudo apt-get clean; sudo rm -rf /var/lib/apt/lists/*; \ -# \ -# git clone --depth 1 -b v${PYENV_VERSION_INSTALL} https://github.com/pyenv/pyenv.git $HOME/.pyenv; \ -# rm -rf $HOME/.pyenv/.git; \ -# { \ -# echo ''; \ -# echo 'export PYENV_ROOT="$HOME/.pyenv"'; \ -# echo 'export PATH="$PYENV_ROOT/bin:$PATH"'; \ -# echo 'eval "$(pyenv init -)"'; \ -# } >> $HOME/.profile; \ -# # Reload $HOME/.profile to apply settings for the current shell -# . $HOME/.profile; \ -# pyenv install ${PYTHON_VERSION_INSTALL}; \ -# pyenv global ${PYTHON_VERSION_INSTALL} - # Notify web container about started fin exec RUN echo '(/opt/ping-web.sh &)' >> $HOME/.profile @@ -508,9 +424,9 @@ USER docker ARG HOME=/home/docker ENV \ - CODE_SERVER_VERSION=4.10.1 \ - VSCODE_GITLENS_VERSION=13.2.2 \ - VSCODE_XDEBUG_VERSION=1.32.0 \ + CODE_SERVER_VERSION=4.20.1 \ + VSCODE_GITLENS_VERSION=14.7.0 \ + VSCODE_XDEBUG_VERSION=1.34.0 \ VSCODE_HOME="${HOME}/code-server" # Install code-server @@ -526,7 +442,7 @@ COPY --chown=docker:docker config/code-server ${VSCODE_HOME} # Note: Have to use --user-data-dir with --install-extension instead of --config RUN set -xe; \ code-server --user-data-dir=${VSCODE_HOME} --install-extension eamodio.gitlens@${VSCODE_GITLENS_VERSION}; \ - code-server --user-data-dir=${VSCODE_HOME} --install-extension felixfbecker.php-debug@${VSCODE_XDEBUG_VERSION} + code-server --user-data-dir=${VSCODE_HOME} --install-extension xdebug.php-debug@${VSCODE_XDEBUG_VERSION} # Switch back to root (IMPORTANT!) USER root diff --git a/8.0/Makefile b/8.3/Makefile similarity index 99% rename from 8.0/Makefile rename to 8.3/Makefile index 36282f9f..84dbc119 100644 --- a/8.0/Makefile +++ b/8.3/Makefile @@ -3,7 +3,7 @@ IMAGE ?= docksal/cli VERSION_PREFIX ?= php -VERSION ?= 8.0 +VERSION ?= 8.3 BUILD_IMAGE_TAG ?= $(IMAGE):$(VERSION_PREFIX)$(VERSION)-build NAME = docksal-cli-$(VERSION)-$(GIT_SHA7) CWD = $(shell pwd) diff --git a/8.0/config/.ssh/config b/8.3/config/.ssh/config similarity index 100% rename from 8.0/config/.ssh/config rename to 8.3/config/.ssh/config diff --git a/8.0/config/.ssh/id_rsa.tmpl b/8.3/config/.ssh/id_rsa.tmpl similarity index 100% rename from 8.0/config/.ssh/id_rsa.tmpl rename to 8.3/config/.ssh/id_rsa.tmpl diff --git a/8.0/config/.terminus/config.yml b/8.3/config/.terminus/config.yml similarity index 100% rename from 8.0/config/.terminus/config.yml rename to 8.3/config/.terminus/config.yml diff --git a/8.0/config/code-server/User/settings.json b/8.3/config/code-server/User/settings.json similarity index 100% rename from 8.0/config/code-server/User/settings.json rename to 8.3/config/code-server/User/settings.json diff --git a/8.0/config/code-server/config.yaml.tmpl b/8.3/config/code-server/config.yaml.tmpl similarity index 100% rename from 8.0/config/code-server/config.yaml.tmpl rename to 8.3/config/code-server/config.yaml.tmpl diff --git a/8.0/config/php/opcache.ini b/8.3/config/php/opcache.ini similarity index 100% rename from 8.0/config/php/opcache.ini rename to 8.3/config/php/opcache.ini diff --git a/8.0/config/php/xdebug.ini b/8.3/config/php/xdebug.ini similarity index 100% rename from 8.0/config/php/xdebug.ini rename to 8.3/config/php/xdebug.ini diff --git a/8.0/config/php/xhprof.ini b/8.3/config/php/xhprof.ini similarity index 100% rename from 8.0/config/php/xhprof.ini rename to 8.3/config/php/xhprof.ini diff --git a/8.0/config/php/zz-php-fpm.conf b/8.3/config/php/zz-php-fpm.conf similarity index 100% rename from 8.0/config/php/zz-php-fpm.conf rename to 8.3/config/php/zz-php-fpm.conf diff --git a/8.0/config/php/zz-php.ini b/8.3/config/php/zz-php.ini similarity index 82% rename from 8.0/config/php/zz-php.ini rename to 8.3/config/php/zz-php.ini index aaf78a2e..c7ece851 100644 --- a/8.0/config/php/zz-php.ini +++ b/8.3/config/php/zz-php.ini @@ -14,6 +14,3 @@ sendmail_path = '/usr/bin/msmtp -t --host=mail --port=1025 --from=docker@cli' ; Extention settings [opcache] opcache.memory_consumption = 128 -[blackfire] -blackfire.agent_socket = 'tcp://blackfire:8307' -blackfire.apm_enabled = 0 diff --git a/8.0/config/supervisor/supervisord-code-server.conf.tmpl b/8.3/config/supervisor/supervisord-code-server.conf.tmpl similarity index 100% rename from 8.0/config/supervisor/supervisord-code-server.conf.tmpl rename to 8.3/config/supervisor/supervisord-code-server.conf.tmpl diff --git a/8.0/config/supervisor/supervisord-crond.conf b/8.3/config/supervisor/supervisord-crond.conf similarity index 100% rename from 8.0/config/supervisor/supervisord-crond.conf rename to 8.3/config/supervisor/supervisord-crond.conf diff --git a/8.0/config/supervisor/supervisord-php-fpm.conf b/8.3/config/supervisor/supervisord-php-fpm.conf similarity index 100% rename from 8.0/config/supervisor/supervisord-php-fpm.conf rename to 8.3/config/supervisor/supervisord-php-fpm.conf diff --git a/8.0/config/supervisor/supervisord-sshd.conf b/8.3/config/supervisor/supervisord-sshd.conf similarity index 100% rename from 8.0/config/supervisor/supervisord-sshd.conf rename to 8.3/config/supervisor/supervisord-sshd.conf diff --git a/8.0/config/supervisor/supervisord.conf b/8.3/config/supervisor/supervisord.conf similarity index 100% rename from 8.0/config/supervisor/supervisord.conf rename to 8.3/config/supervisor/supervisord.conf diff --git a/8.0/healthcheck.sh b/8.3/healthcheck.sh similarity index 100% rename from 8.0/healthcheck.sh rename to 8.3/healthcheck.sh diff --git a/8.0/ping-web.sh b/8.3/ping-web.sh similarity index 100% rename from 8.0/ping-web.sh rename to 8.3/ping-web.sh diff --git a/8.0/startup.sh b/8.3/startup.sh similarity index 100% rename from 8.0/startup.sh rename to 8.3/startup.sh diff --git a/8.0/tests/essential-binaries.sh b/8.3/tests/essential-binaries.sh similarity index 100% rename from 8.0/tests/essential-binaries.sh rename to 8.3/tests/essential-binaries.sh diff --git a/8.0/tests/php-modules.sh b/8.3/tests/php-modules.sh similarity index 97% rename from 8.0/tests/php-modules.sh rename to 8.3/tests/php-modules.sh index 0d671ced..e0a1f3fd 100755 --- a/8.0/tests/php-modules.sh +++ b/8.3/tests/php-modules.sh @@ -4,7 +4,6 @@ php_modules_amd64=\ '[PHP Modules] apcu bcmath -blackfire bz2 calendar Core @@ -42,6 +41,7 @@ pdo_sqlsrv pgsql Phar posix +random readline redis Reflection @@ -67,14 +67,12 @@ zlib [Zend Modules] Zend OPcache -blackfire ' php_modules_arm64=\ '[PHP Modules] apcu bcmath -blackfire bz2 calendar Core @@ -112,6 +110,7 @@ pdo_sqlsrv pgsql Phar posix +random readline redis Reflection @@ -137,7 +136,6 @@ zlib [Zend Modules] Zend OPcache -blackfire ' # Use the docker reported architecture and not the hosts (uname -m). diff --git a/tests/env_make b/tests/env_make index 57a31e52..faf36c5f 100644 --- a/tests/env_make +++ b/tests/env_make @@ -1,7 +1,5 @@ ENV = \ -e XDEBUG_ENABLED \ - -e SECRET_BLACKFIRE_CLIENT_ID \ - -e SECRET_BLACKFIRE_CLIENT_TOKEN \ -e SECRET_SSH_PRIVATE_KEY \ -e SECRET_PLATFORMSH_CLI_TOKEN \ -e SECRET_TERMINUS_TOKEN diff --git a/tests/test.bats b/tests/test.bats index f97450dc..049fce25 100755 --- a/tests/test.bats +++ b/tests/test.bats @@ -217,14 +217,10 @@ _healthcheck_wait () unset output # Check Terminus version - # Terminus v3 is not yet fully compatible with PHP 8.1 - # TODO: Re-enable tests for Terminus v3 on PHP 8.1 once stable. - # See: https://github.com/pantheon-systems/terminus/issues/2256 - if [[ "${VERSION}" != "8.1" ]]; then - run docker exec -u docker "$NAME" bash -lc 'set -x; terminus --version | grep "^Terminus ${TERMINUS_VERSION}$"' - [[ ${status} == 0 ]] - unset output - fi + # --no-ansi is used to strip color codes from the output, otherwise the grep will fail + run docker exec -u docker "$NAME" bash -lc 'set -x; terminus --no-ansi --version | grep "^Terminus ${TERMINUS_VERSION}$"' + [[ ${status} == 0 ]] + unset output # Check Platform CLI version run docker exec -u docker "$NAME" bash -lc 'set -x; platform --version | grep "Platform.sh CLI ${PLATFORMSH_CLI_VERSION}"' @@ -240,7 +236,7 @@ _healthcheck_wait () make clean } -@test "Check NodeJS tools and versions" { +@test "Check misc tools and versions" { [[ $SKIP == 1 ]] && skip ### Setup ### @@ -266,75 +262,13 @@ _healthcheck_wait () [[ ${status} == 0 ]] unset output - ### Cleanup ### - make clean -} - -@test "Check Ruby tools and versions" { - [[ $SKIP == 1 ]] && skip - - ### Setup ### - make start - - run _healthcheck_wait - unset output - - ### Tests ### - - # rvm - run docker exec -u docker "$NAME" bash -lc 'rvm --version 2>&1 | grep "${RVM_VERSION_INSTALL}"' - [[ ${status} == 0 ]] - unset output - - # ruby - #run docker exec -u docker "$NAME" bash -lc 'ruby --version | grep "${RUBY_VERSION_INSTALL}"' - # Default Ruby version in Debian 11 = 2.7.x - run docker exec -u docker "$NAME" bash -lc 'ruby --version | grep "ruby 2.7"' + # Stock Ruby version in Debian 12 is 3.1.x + run docker exec -u docker "$NAME" bash -lc 'ruby --version | grep "ruby 3.1"' [[ ${status} == 0 ]] unset output - ### Cleanup ### - make clean -} - -@test "Check Python tools and versions" { - [[ $SKIP == 1 ]] && skip - - ### Setup ### - make start - - run _healthcheck_wait - unset output - - ### Tests ### - - # pyenv - run docker exec -u docker "$NAME" bash -lc 'pyenv --version 2>&1 | grep "${PYENV_VERSION_INSTALL}"' - [[ ${status} == 0 ]] - unset output - - # pyenv - run docker exec -u docker "$NAME" bash -lc 'python --version 2>&1 | grep "${PYTHON_VERSION_INSTALL}"' - [[ ${status} == 0 ]] - unset output - - ### Cleanup ### - make clean -} - -@test "Check misc tools and versions" { - [[ $SKIP == 1 ]] && skip - - ### Setup ### - make start - - run _healthcheck_wait - unset output - - ### Tests ### - - # Check Blackfire CLI version - run docker exec -u docker "$NAME" bash -lc 'blackfire version | grep "${BLACKFIRE_VERSION}"' + # 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"' [[ ${status} == 0 ]] unset output