无法使用docker和tox连接到Postgres服务

2024-05-29 11:57:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个docker应用程序,可以构建Postgres数据库。我在用毒药做Django测试。当我在本地机器中的docker映像上运行docker-compose run web tox(我使用docker-compose up --build --force-recreate -d构建docker映像)时,错误显示为:

E       django.db.utils.OperationalError: could not connect to server:                     
        Connection refused
E       Is the server running on host "127.0.0.1" and accepting
E       TCP/IP connections on port 5432?

但当我运行唯一的tox命令(不是在我的docker图像上)时,它运行得很好。你知道吗

我尝试在没有tox的情况下运行Django测试,即在docker映像上使用docker-compose run web python manage.py test。在这种情况下,它没有显示任何错误。我想我对码头工人的照片做毒物检测有点问题。你知道吗


Tags: djangocomposedockerrun机器web数据库应用程序
1条回答
网友
1楼 · 发布于 2024-05-29 11:57:29

这可能是由众所周知的事情引起的,即测试容器在DB容器完全运行之前启动。尽管您在docker compose dependency/link中设置了docker,但docker只会等待相关容器启动。如果DB初始化需要30秒,那么第二个容器将在这之前启动,您将看到这个问题。你知道吗

解决方案是在第二个容器上放置一些bash脚本,该脚本将ping DB端口,使其等待DB准备就绪。所以,有许多类似的问题,有一些很好的解决方案,如何使第二个容器等待依赖数据库。你知道吗

相关问题 更多 >

    热门问题