Ho seguito le guide e sono arrivato fino a qui, ma non riesco a superare questo punto. Ho persino creato un nuovo utente sul server MySQL con una password nativa e ho provato senza successo.
su discourse -c "bundle exec ruby script/import_scripts/smf2.rb /shared/smf2 -t UTC"
Caricamento gruppi esistenti...
Caricamento utenti esistenti...
Caricamento categorie esistenti...
Caricamento post esistenti...
Caricamento argomenti esistenti...
Traceback (most recent call last):
7: from script/import_scripts/smf2.rb:701:in `<main>'
6: from script/import_scripts/smf2.rb:28:in `run'
5: from script/import_scripts/smf2.rb:28:in `new'
4: from script/import_scripts/smf2.rb:62:in `initialize'
3: from script/import_scripts/smf2.rb:274:in `create_db_connection'
2: from script/import_scripts/smf2.rb:274:in `new'
1: from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/mysql2-0.5.3/lib/mysql2/client.rb:90:in `initialize'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/mysql2-0.5.3/lib/mysql2/client.rb:90:in `connect': RSA Encryption non supportata - il plugin caching_sha2_password è stato compilato con supporto GnuTLS (Mysql2::Error)
Sembra che si tratti di un problema dello script, dato che posso installare il client MySQL nel container e accedere al database nel container MySQL tramite riga di comando.
OK. Quindi, per coloro che si imbattono in questo, ho dovuto fare un bel po’ di lavoro per far funzionare correttamente questo script di importazione.
Il contenitore Docker MySQL è alla versione 8.
Questo significa, per qualche motivo, che la libreria MariaDB inclusa nel template MySQL non funziona.
Questo presenta un prompt interattivo e puoi selezionare le impostazioni predefinite (MySQL 8 con gli strumenti).
Successivamente ho installato la normale libreria MySQL 8 e ho proseguito con la costruzione:
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'
Una volta completato tutto questo, il resto è rimasto invariato; l’importazione è ora in esecuzione.
Gli sviluppatori di Discourse potrebbero voler modificare gli script di importazione per tenere conto di questa situazione; almeno ora è disponibile sui forum per chi, come me, si trova in difficoltà .