magento-cloud-docker: php ext-sodium missing for 7.4-cli which is required for Magento 2.4.3

Overview

The php extension ext-sodium is missing for magento/magento-cloud-docker-php: 7.4-cli-1.2.4 which is a requirement for Magento 2.4.3 to build. Also reported here: https://github.com/magento/magento2/issues/33743

Preconditions

Magento 2.4.3 magento/magento-cloud-docker-php: 7.4-cli-1.2.4 (latest)

Steps to reproduce

  1. Use docker image magento/magento-cloud-docker-php:7.4-cli-1.2.4
  2. Try to build any Magento 2.4.3

Expected result

Build should succeed.

Actual result

Short:

magento/product-community-edition 2.4.3 requires web-token/jwt-framework ^v2.2.7

web-token/jwt-framework v2.2.10 requires ext-sodium *

Long:

Your lock file does not contain a compatible set of packages. Please run composer update.
  Problem 1
    - web-token/jwt-framework is locked to version v2.2.10 and an update of this package was not requested.
    - web-token/jwt-framework v2.2.10 requires ext-sodium * -> it is missing from your system. Install or enable PHP's sodium extension.
  Problem 2
    - web-token/jwt-framework v2.2.10 requires ext-sodium * -> it is missing from your system. Install or enable PHP's sodium extension.
    - magento/product-community-edition 2.4.3 requires web-token/jwt-framework ^v2.2.7 -> satisfiable by web-token/jwt-framework[v2.2.10].
    - magento/product-community-edition is locked to version 2.4.3 and an update of this package was not requested.
To enable extensions, verify that they are enabled in your .ini files:
    - 
    - /usr/local/etc/php/conf.d/blackfire.ini
    - /usr/local/etc/php/conf.d/docker-php-ext-bcmath.ini
    - /usr/local/etc/php/conf.d/docker-php-ext-bz2.ini
    - /usr/local/etc/php/conf.d/docker-php-ext-calendar.ini
    - /usr/local/etc/php/conf.d/docker-php-ext-exif.ini
    - /usr/local/etc/php/conf.d/docker-php-ext-gd.ini
    - /usr/local/etc/php/conf.d/docker-php-ext-gettext.ini
    - /usr/local/etc/php/conf.d/docker-php-ext-intl.ini
    - /usr/local/etc/php/conf.d/docker-php-ext-mysqli.ini
    - /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini
    - /usr/local/etc/php/conf.d/docker-php-ext-pcntl.ini
    - /usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini
    - /usr/local/etc/php/conf.d/docker-php-ext-redis.ini
    - /usr/local/etc/php/conf.d/docker-php-ext-soap.ini
    - /usr/local/etc/php/conf.d/docker-php-ext-sockets.ini
    - /usr/local/etc/php/conf.d/docker-php-ext-sysvmsg.ini
    - /usr/local/etc/php/conf.d/docker-php-ext-sysvsem.ini
    - /usr/local/etc/php/conf.d/docker-php-ext-sysvshm.ini
    - /usr/local/etc/php/conf.d/docker-php-ext-xsl.ini
    - /usr/local/etc/php/conf.d/docker-php-ext-zip.ini
    - /usr/local/etc/php/conf.d/gnupg.ini
    - /usr/local/etc/php/conf.d/zz-magento.ini
    - /usr/local/etc/php/conf.d/zz-mail.ini
    - /usr/local/etc/php/conf.d/zz-pcov-settings.ini
    - /usr/local/etc/php/conf.d/zz-xdebug-settings.ini

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Reactions: 8
  • Comments: 25 (12 by maintainers)

Most upvoted comments

I have stuck into the same issue when running locally

curl https://raw.githubusercontent.com/magento/magento-cloud-docker/1.2.4/bin/init-docker.sh | bash -s -- --php 7.4

onto a fresh 2.4.3 template.

init-docker.sh uses the docker image tagged “magento/magento-cloud-docker-php:${PHP_VERSION}-cli-${IMAGE_VERSION}”. And php-cli-7.2, php-cli-7.3… do NOT include the sodium extension in the proper way.

@BaDos I’m currently testing the Docker PHP CLI 7.4-cli-1.3.1 image (linked here: https://hub.docker.com/layers/magento/magento-cloud-docker-php/7.4-cli-1.3.1/images/sha256-0c91371f027bb0fa5515b6e1cf32346d5c0fb39523f0e5a918e153dda13e36b3?context=explore) and still seeing sodium not being installed on CLI commands. Is this the version which was supposed to address this issue?

Having the same issue today! Here is my workaround for being able to execute composer install.

docker run -it -v $(pwd):/app -w /app magento/magento-cloud-docker-php:7.4-cli-1.2.1 bash -c 'docker-php-ext-enable sodium && composer install'

@Axel29 this way you can avoid using the --ignore-platform-reqs flag which should be always avoided, otherwise wrong incompatible may be installed.

@dshevtsov

Only optional extensions are expected to be configurable. Required extensions are expected to be up and working by default in a corresponding template.

init-docker.sh does not read files form templates

@Alex29 I have checked our images/code We are trying to support all Magento versions. Previous time there was a conflict when sodium was enabled by default. MCD 1.3.1 will have enabled sodium by default.

Thank you for your contribution and for raising this issue!

I have stuck into the same issue when running locally

curl https://raw.githubusercontent.com/magento/magento-cloud-docker/1.2.4/bin/init-docker.sh | bash -s -- --php 7.4

onto a fresh 2.4.3 template.