gpt4 book ai didi

mysql - 使用docker进行单元测试

转载 作者:行者123 更新时间:2023-11-29 11:54:43 28 4
gpt4 key购买 nike

我使用 --net=host 选项运行 MySQL 容器。

现在我可以使用:g进行单元测试:

self.db = MySQLdb.connect(host="127.0.0.1", user="XYZ", passwd="XYZ", db="TEST_DB")

问题是当我尝试对单元测试进行 dockerize 并将容器与 MySQL 容器链接时,127.0.0.1 IP 无效。我需要使用 MySql 容器的真实 IP,或者使用 DNS(/etc/hosts 文件)。

所以我需要更改 MySQL 主机名称的 IP 127.0.0.1

我想有更好的方法来做到这一点吗?例如,我可以更改开发环境的 /etc/hosts 文件。

最佳答案

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 标志手动将条目添加到容器的 /etc/hosts 文件按照this :

$ 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

关于mysql - 使用docker进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33414784/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com