我正在尝试从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合作的新手。
答案 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变量