我使用--net=host
选项运行MySQL容器。
所以现在我可以使用:g:
进行单元测试self.db = MySQLdb.connect(host =“127.0.0.1”,user =“XYZ”,passwd =“XYZ”, 分贝= “TEST_DB”)
问题是,当我尝试对单元测试进行dockerize,将容器与我的MySQL容器相关联时,127.0.0.1
IP无效。我需要使用真正的IP用于MySql容器,或使用DNS(/etc/hosts
文件)。
所以我需要更改ip 127.0.0.1
以获取MySQL主机的名称。
我想有更好的方法可以做到这一点?例如,我可以改变我的开发环境的/etc/hosts
文件。
答案 0 :(得分:1)
Docker链接更新链接容器中的/etc/hosts
文件。
使用您链接到的容器的名称(在/etc/hosts
文件中找到它)来引用测试中的数据库。
self.db = MySQLdb.connect(host="db-container-name", user="XYZ", passwd="XYZ", db="TEST_DB")
docker-compose也将为您执行此操作(它只是Docker的包装器并使用下面的链接),或者您可以使用--add-host
标志手动将条目添加到容器的{{1}根据{{3}}文件:
/etc/hosts