Ruby on rails 从docker容器ruby on rails应用程序连接本地mongodb
我正在尝试从docker容器ruby on rails应用程序连接本地mongodb。 我在envFile文件中添加了变量Ruby on rails 从docker容器ruby on rails应用程序连接本地mongodb,ruby-on-rails,mongodb,docker,Ruby On Rails,Mongodb,Docker,我正在尝试从docker容器ruby on rails应用程序连接本地mongodb。 我在envFile文件中添加了变量env MONGODB_URI,值为: MONGODB_URI=mongodb://username:password@主机:27017/数据库 用于在容器中运行映像的命令: docker run-p80:80--env file~/envFile-v~/.ssh/filename:/tmp/filename--name=name-imagename 但它与mongodb没有
env MONGODB_URI
,值为:
MONGODB_URI=mongodb://username:password@主机:27017/数据库
用于在容器中运行映像的命令:
docker run-p80:80--env file~/envFile-v~/.ssh/filename:/tmp/filename--name=name-imagename
但它与mongodb没有联系。我是docker的新手。当您从容器内部指向您的
localhost
时,您将指向容器的localhost
,而不是主机系统中的localhost
解决问题的一种方法是使用主机
网络,而不是默认的网桥
:在主机
网络中部署应用程序容器:
docker run .. --net=host ..
另一种解决方法是使用--addhost
选项
docker run .. --add-host="localhost:192.168.0.133" ...
在本例中,
192.168.0.133
是我的en0
计算机的IP地址(请检查ifconfig
) 这个解决方案适合我:添加了自签名ssl证书,配置了mongoid.yml,将所有信息放在uri中,在mongoid.yml中添加uri作为一个ENV var你能从容器内部ping你的“主机”吗+你的“主机”不是本地主机?你能解释一下如何ping我的主机吗。是的,我的主人是本地人谢谢!我试过了,但没用。让我再给你解释一下我在做什么。我可能会做错什么我正在dockergnore文件中添加mongoid.yml•在env.config文件中添加env MONGODB_URI(在dockerFile中添加)•将env MONGODB_URI的值放在envFile中,其中主机名是mongoid.yml中的主机名•在0.0.0.0 IP地址中连接我的本地主机是否也必须配置和使用mongoid.yml?是否尝试了主机选项,是否尝试在容器内执行并ping MONGODB?如果这起作用,则是mongodb配置问题;如果不起作用,则是networkconfig问题