在Rails应用程序上从Docker容器ruby连接本地mongodb

时间:2018-06-21 18:05:27

标签: ruby-on-rails mongodb docker

我正在尝试从Rails应用程序上的docker容器ruby连接本地mongodb。 我在变量envFile文件中将变量作为env MONGODB_URI添加了值:

MONGODB_URI=mongodb://username:password@host:27017/database

我用来在容器中运行图像的命令:

docker run -p 80:80 --env-file ~/envFile -v ~/.ssh/filename:/tmp/filename --name=name imagename

但是它没有与mongodb连接。我是与docker合作的新手。

2 个答案:

答案 0 :(得分:0)

当您从容器内部指向localhost时,您将指向容器的localhost,而不是主机系统中的localhost

解决问题的一种方法是使用host网络而不是默认的bridge:在host网络中部署应用容器:

 docker run .. --net=host ..

解决此问题的另一种方法是使用--add-host选项。

docker run .. --add-host="localhost:192.168.0.133" ...

在这种情况下,192.168.0.133是我的计算机的en0 IP地址(选中ifconfig)。

答案 1 :(得分:0)

此解决方案对我有用:添加了自签名的ssl证书,配置了mongoid.yml,将所有信息放入uri,将uri添加到mongoid.yml中,作为ENV变量