我运行一个带有MySQL选项的--net=host
容器。
因此,现在我可以使用:G进行单元测试:
self.db = MySQLdb.connect(host="127.0.0.1",user="XYZ",passwd="XYZ",db="TEST_DB")
问题是,当我尝试修改我的单元测试,将容器与我的MySQL容器链接时,127.0.0.1
IP是无效的。我需要为MySql容器使用真正的ip,或者使用DNS (/etc/hosts
文件)。
因此,我需要更改ip 127.0.0.1
作为MySQL主机的名称。
我想还有更好的方法吗?例如,我可以修改我的开发环境的/etc/hosts
文件。
发布于 2015-10-29 05:02:59
Docker链接更新链接容器中的/etc/hosts
文件。
使用链接到的容器的名称(在/etc/hosts
文件中找到它)来引用测试中的数据库。
self.db = MySQLdb.connect(host="db-container-name", user="XYZ", passwd="XYZ", db="TEST_DB")
码头工也将为您执行此操作(它只是Docker的包装器,并使用下面的链接),或者您可以使用--add-host
标志手动将条目添加到容器的/etc/hosts
文件中,如这所示
$ docker run -it --add-host db-static:86.75.30.9 ubuntu cat /etc/hosts
172.17.0.22 09d03f76bf2c
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
86.75.30.9 db-static
https://stackoverflow.com/questions/33414784
复制