Trabajé de la siguiente manera:
siguiendo Usando un contenedor Docker
- Instalación estándar de Discourse (discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub).
- Descargué MySQL Docker y subí mi base de datos vBulletin allí.
Lo comprobé usando el comando<root@localhost:/opt/discourse# mysql -h 172.17.0.5 -P 3306 --protocol=tcp -u root -p>. root@localhost:/opt/discourse#./launcer enter appapt-get update && apt-get install libmysqlclient-dev mysql-server-5.7falló.
así que instaléapt-get update && apt-get install libmariadb-dev mariadb-server- No puedo ejecutar MySQL en Docker.
root@localhost-app:/var/www/discourse# mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock' (2)
No hay mysqld.sock en todos los directorios de Docker. No pude encontrarlo con el comando <find>.
root@localhost-app:/var/www/discourse# sudo service mysql start
mysql: unrecognized service
- Hice referencia a https://www.baeldung.com/docker-cant-connect-local-mysql y usé la imagen de Docker de MySQL en “172.17.0.5”.
gem install mysql2
gem install php_serialize
<gem install mysql2> no funcionó hasta que se instaló libmariadb-dev.
8. Ejecuté
su discourse -c 'bundle install --no-deployment --without test --without development --path vendor/bundle'
Hubo un error, así que borré gemfile.lock y el archivo .bundle y lo intenté de nuevo.
9. Después de eso, intenté:
export DB_NAME="vb3" # Cambia esto al nombre de la base de datos de VB3.
export DB_USER="root"
export DB_PASSWORD="mypassword"
export DB_HOST="172.17.0.5"
cd /var/www/discourse
su discourse -c 'bundle exec ruby script/import_scripts/vbulletin.rb'
Pero el script genera un error.
1: from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-mini-profiler-3.0.0/lib/mini_profiler/profiling_methods.rb:83:in `profile_method'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-mini-profiler-3.0.0/lib/mini_profiler/profiling_methods.rb:83:in `alias_method': undefined method `call' for class `Redis::Client' (NameError)
Did you mean? caller
¿Cómo puedo solucionarlo?
Gracias.