Хорошо. Для тех, кто наткнулся на это: мне пришлось немало потрудиться, чтобы заставить этот скрипт импорта работать.
Контейнер MySQL Docker — версия 8.
Это означает, что по какой-то причине библиотека mariadb, которую подтягивает шаблон MySQL, не работает.
Что я сделал иначе, чем в https://meta.discourse.org/t/smf2-to-discourse-the-ultimate-guide/90314:
Я не включал файл шаблона MySQL в конфигурационный файл контейнера импорта.
Я собрал контейнер импорта, зашёл в него с помощью ./launcher enter import.
Затем:
echo "gem 'mysql2'" >> Gemfile
wget https://dev.mysql.com/get/mysql-apt-config_0.8.17-1_all.deb
dpkg -i mysql-apt-config_0.8.17-1_all.deb
Это вызывает интерактивный запрос, где можно выбрать настройки по умолчанию (MySQL 8 с инструментами).
Затем я установил обычную библиотеку MySQL 8 и продолжил сборку:
apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y libmysqlclient-dev
su discourse -c 'bundle config unset deployment'
su discourse -c 'bundle install --no-deployment --path vendor/bundle --jobs 4 --without test development'
После этого всё остальное осталось прежним, и импорт теперь выполняется.
Разработчикам Discourse, возможно, стоит скорректировать скрипты импорта с учётом этого. По крайней мере, теперь это есть на форуме, чтобы другие могли увидеть решение, если столкнутся с той же проблемой, что и я.