在 Jenkins 服务器上运行 Django 测试时,Selenium WebDriverException:消息:地址不可用

在 Jenkins 服务器上运行 Django 测试时,Selenium WebDriverException:消息:地址不可用

我正在运行一个 AWS EC2 实例的 docker。使用 docker-compose,我在一个容器中运行 jenkins。我有一个 jenkins 管道,它检查我的 repo(这是一个带有 docker 文件的 Djano 应用程序)。然后,我的管道使用 Docker 文件构建 docker 映像。这是在主机 docker 守护进程上构建的,因为我已经在 docker-compose 文件中映射了这些卷

volumes:
   - /var/run/docker.sock : /var/run/docker.sock

图像已成功构建,我可以使用以下方式从我的詹金斯管道运行此图像中的命令

img = docker.build(....)
img.inside{
    sh '.....'
}

但是当我尝试使用

img.inside{
   sh 'python manage.py test'
}

从 TestCase 继承的测试可以成功运行。但我有一些测试是 StaticLiverServerTestCase 的子集,它们使用 selenium。尝试初始化我的 Webdriver 实例时出现错误:

browser = WebDriver()

raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: address not available.

这些测试在我本地机器上完全相同的设置下成功运行

docker-compose run web python manage.py test

我猜想这可能是 AWS 安全组和端口访问出了问题。LiveServerTestCase 可能尝试使用 AWS 安全组不允许的端口。但我尝试启用内部流量对所有端口的 TCP 访问,但这也不起作用。

请问有没有人遇到过类似的问题或者能给我一些建议。

相关内容