今天我有一个错误,我的rspec测试运行正常,直到最后的预期,但后来我仍然遇到了#34;数据库连接超时错误"。
这是在本地运行rails,使用docker machine连接到docker内的postgres实例。
Docker机器指令引导我在/etc/hosts
文件中创建一个条目:
192.168.99.100 docker.local
这对于测试本身来说工作得很好,但是之后的某些事情(可能是在测试套件之后的一些清理步骤 - 可能来自DatabaseCleaner?)仍然引发了关于超时连接到数据库的错误。
经过大量调查,调试,甚至删除和重新创建docker机器默认容器后,我最终将其缩小到如果我用数据库配置中的实际IP地址替换docker.local
- 它通过了。
所以底线 - 一些清理过程无法访问/ etc / hosts定义的docker.local主机名。
这是OSX El Capitan。