У меня запущен Docker, экземпляр AWS EC2.Используя docker-compose, я запускаю jenkins в одном контейнере.У меня есть конвейер jenkins, который проверяет мое репо (которое является приложением Djano с файлом Docker).Мой конвейер затем строит образ докера, используя файл Docker.Это сборка на демоне хоста, так как я сопоставил эти тома в моем файле docker-compose
volumes:
- /var/run/docker.sock : /var/run/docker.sock
Образ успешно собран, и я могу запускать команды в этом образе из моего конвейера jenkins, используя
img = docker.build(....)
img.inside{
sh '.....'
}
Но когда я пытаюсь запустить свои тесты Django, используя
img.inside{
sh 'python manage.py test'
}
Тесты, которые наследуются от TestCase, запускаются успешно.Но у меня есть тесты, которые являются подмножествами StaticLiverServerTestCase, они используют селен.Я получаю сообщение об ошибке при попытке инициализировать мой экземпляр 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 ко всем портам из внутреннего трафика, но это также не работает.
Пожалуйста, кто-нибудь сталкивался с подобными проблемами или есть какие-либо советы для меня.