我按照以下步骤操作:
遵循了使用 Docker 容器
- 标准安装 discourse。(discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub)。
- 下载 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)
在整个 docker 目录中都没有 mysqld.sock。无法通过 `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` 不起作用。
- 运行
su discourse -c 'bundle install --no-deployment --without test --without development --path vendor/bundle'
出现错误,所以我删除了 gemfile.lock 和 .bundle 文件并重试。
- 之后我尝试了。
export DB_NAME="vb3" # Change this to the name of VB3 database.
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
我该如何解决?
谢谢。