Подскажите, как перейти на Composer 2 в Docker4Drupal

Аватар пользователя VasyOK VasyOK 7 апреля в 14:43

Docker4Drupal ставил год назад, с тех пор вышла новая версия Composer.

Выполняю
sudo composer self-update --2

Пишет

PHP Warning:  PHP Startup: Unable to load dynamic library 'gd2' (tried: /usr/lib/php/20190902/gd2 (/usr/lib/php/20190902/gd2: cannot open shared object file: No such file or directory), /usr/lib/php/20190902/gd2.so (/usr/lib/php/20190902/gd2.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
The "cweagans/composer-patches" plugin was skipped because it requires a Plugin API version ("^1.0") that does not match your Composer installation ("2.0.0"). You may need to run composer update with the "--no-plugins" option.
The "drupal/console-extend-plugin" plugin was skipped because it requires a Plugin API version ("^1.0") that does not match your Composer installation ("2.0.0"). You may need to run composer update with the "--no-plugins" option.
The "drupal/core-composer-scaffold" plugin was skipped because it requires a Plugin API version ("^1.0.0") that does not match your Composer installation ("2.0.0"). You may need to run composer update with the "--no-plugins" option.
The "zaporylie/composer-drupal-optimizations" plugin was skipped because it requires a Plugin API version ("^1.1") that does not match your Composer installation ("2.0.0"). You may need to run composer update with the "--no-plugins" option.
You are already using the latest available Composer version 2.0.12 (2.x channel).

Выплняю
sudo composer self-update --2 --no-plugins
Пишет

PHP Warning:  PHP Startup: Unable to load dynamic library 'gd2' (tried: /usr/lib/php/20190902/gd2 (/usr/lib/php/20190902/gd2: cannot open shared object file: No such file or directory), /usr/lib/php/20190902/gd2.so (/usr/lib/php/20190902/gd2.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
You are already using the latest available Composer version 2.0.12 (2.x channel).

Тем не менее версию все равно показывает первую.

composer --version
Composer version 1.10.5 2020-04-10 11:44:22

Лучший ответ

Комментарии

Аватар пользователя ivnish ivnish 7 апреля в 14:45

Обнови файлы d4d у текущего проекта и новые проекты тоже начинай используя новые файлы d4d.

Аватар пользователя VasyOK VasyOK 7 апреля в 15:05

Обновил для проекта файлы отсюда:
https://github.com/wodby/docker4drupal/releases/tag/5.4.28

Пишет.
ERROR: Version in "./docker-compose.yml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a supported version (e.g "2.2" or "3.3") and place your service definitions under the `services` key, or omit the `version` key and place your service definitions at the root of the file to use version 1.
For more on the Compose file format versions, see https://docs.docker.com/compose/compose-file/

Аватар пользователя VasyOK VasyOK 7 апреля в 16:09

Вроде обновилось

composer --version
PHP Warning: PHP Startup: Unable to load dynamic library 'gd2' (tried: /usr/lib/php/20190902/gd2 (/usr/lib/php/20190902/gd2: cannot open shared object file: No such file or directory), /usr/lib/php/20190902/gd2.so (/usr/lib/php/20190902/gd2.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Composer version 2.0.12 2021-04-01 10:14:59

Если я правильно понимаю версия Композера все же обновилась. Но проекту необходима библиотека gd2. Как ее установить?

Уже разными способами пробовал - не получается.

Аватар пользователя bsyomov bsyomov 8 апреля в 20:11

Отличный прям совет для окружения кем-то созданного в докере? Нет конечно.

Аватар пользователя VasyOK VasyOK 7 апреля в 16:35

Прописал в .env
PHP_TAG=7.4-dev-4.24.4
вместо
PHP_TAG=7.4-dev-4.24.1

Повлияет?

sudo apt install php7.4-gd пишет:
Уже установлен пакет php7.4-gd самой новой версии (7.4.3-4ubuntu2.4).
Т.е. вроде установлено.

Тем не менее
composer --version
Выдает:
PHP Warning: PHP Startup: Unable to load dynamic library 'gd2' (tried: /usr/lib/php/20190902/gd2 (/usr/lib/php/20190902/gd2: cannot open shared object file: No such file or directory), /usr/lib/php/20190902/gd2.so (/usr/lib/php/20190902/gd2.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Composer version 2.0.12 2021-04-01 10:14:59

Это как?

Аватар пользователя adano adano 7 апреля в 17:23

Окружение не забывай перезагружать... Если не умеешь, то комп перезагрузи.

Аватар пользователя VasyOK VasyOK 7 апреля в 17:53

не ставится docksal у меня увы. А gd библиотека у меня и раньше не ставилась. Пока проблема в ней.

Аватар пользователя VasyOK VasyOK 7 апреля в 17:22

Заменил в php.ini
extension=gd2
на
extension=gd

Теперь composer --version выдает:
PHP Warning: Module 'gd' already loaded in Unknown on line 0
Composer version 2.0.12 2021-04-01 10:14:59

Что это значит?

Аватар пользователя adano adano 7 апреля в 18:19

Ну судя по путям, то у тебя в системе одна версия php, в докере другая.
И где/что ты правишь/ставишь - известно лишь тебе.

Снеси всё и делай по свежим мануалам из инета... их полно.

Аватар пользователя VasyOK VasyOK 7 апреля в 19:34

"Снеси всё" - я не в первый раз ставлю D4D, у меня и раньше были проблемы с gd.

"не надо в контейнер устанавливать" - а куда надо?

Можно еще вопрос. Что значает (?):
ERROR: Version in "./docker-compose.yml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a supported version (e.g "2.2" or "3.3") and place your service definitions under the `services` key, or omit the `version` key and place your service definitions at the root of the file to use version 1.
For more on the Compose file format versions, see https://docs.docker.com/compose/compose-file/
make: *** [docker.mk:22: up] Ошибка 1

Я ж вроде обновил Композер...

Аватар пользователя gun_dose gun_dose 7 апреля в 23:11

В файле docker-compose.yml в первой строке указывается версия. Это не версия файла, а версия синтаксиса или что-то в этом роде.

По поводу gd и gd2 - их вообще никуда не надо устанавливать. Они уже есть в контейнере. Очень похоже на то, что проблемы у тебя именно из-за того, что ты что-то повторно пытаешься установить в контейнер.