我正在运行一个 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 访问,但这也不起作用。
请问有没有人遇到过类似的问题或者能给我一些建议。