我正在尝试在 phusion/passenger-ruby21 容器和单独的 mysql:5.5.46 容器上部署 Ruby on Rails 应用程序。两者都是在没有 docker compose 的情况下链接的。
我运行 Passenger-ruby 容器:
sudo docker run -it -p 80:80 --link mysql55:mysql -e .env --name ror1 rubyonrails-phusionimg2 /bin/bash
mysql 容器具有:
sudo docker run --detach --name mysql55 --env MYSQL_ROOT_PASSWORD=**** --env MYSQL_USER=**** --env MYSQL_PASSWORD=**** --env MYSQL_DATABASE=**** mysql:5.5.46
这是我的database.yml
在 Rails 应用程序中。
staging:
adapter: mysql2
database: "<%= ENV["DATABASE_NAME"] %>"
host: "<%= ENV["MYSQL_PORT_3306_TCP_ADDR"] %>"
port: "<%= ENV["MYSQL_PORT_3306_TCP_PORT"] %>"
username: "<%= ENV["DATABASE_USERNAME"] %>"
password: "<%= ENV["DATABASE_STAGING_PASSWORD"] %>"
这是 webapp.conf:
# /etc/nginx/sites-enabled/webapp.conf:
server {
listen 80;
server_name *****.com;
root /home/app/webapp/public;
passenger_enabled on;
rails_env staging;
index index.html index.htm;
# auth_basic "Restricted";
# auth_basic_user_file /etc/nginx/htpasswd;
}
rake db:create db:migrate
运行成功,这意味着具有临时环境的rake程序能够到达mysql数据库容器。但从乘客仪表板我仍然得到Can't connect to local MySQL server through socket /var/run/mysqld/mysqld.sock (2)
我错过了什么吗?所有环境似乎都已加载且正确。
最佳答案
您没有在应用程序中指定连接 mysql 的主机。
如果您不指定主机,mysql 将尝试连接您主机上的服务器,而不是容器中的服务器。
关于mysql - Docker Passenger Dashboard 显示 MySQL 无法连接到套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36596643/