以下のように作業しました。
Dockerコンテナの使用に従いました。
- Discourseの標準インストール。(https://github.com/discourse/discourse/blob/main/docs/INSTALL-cloud.md)
- MySQL Dockerをダウンロードし、vBulletinデータベースをアップロードしました。
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.7が失敗しました。
そのため、apt-get update && apt-get install libmariadb-dev mariadb-serverをインストールしました。- DockerでMySQLを実行できません。
root@localhost-app:/var/www/discourse# mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock' (2)
mysqld.sock はDockerディレクトリ全体に見つかりませんでした。find コマンドで見つけることができませんでした。
root@localhost-app:/var/www/discourse# sudo service mysql start
mysql: unrecognized service
- https://www.baeldung.com/docker-cant-connect-local-mysql を参照し、“172.17.0.5” のMySQL Dockerイメージを使用しました。
gem install mysql2
gem install php_serialize
libmariadb-dev がインストールされるまで、<gem install mysql2> は機能しませんでした。
8. 実行
su discourse -c 'bundle install --no-deployment --without test --without development --path vendor/bundle'
エラーが発生したため、gemfile.lock と .bundle ファイルを削除して再試行しました。
9. その後、試しました。
export DB_NAME="vb3" # 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'
しかし、スクリプトはエラーを生成しました。
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
どうすれば修正できますか?
よろしくお願いします。