У меня запущен докер экземпляр AWS EC2. Используя docker-compose, у меня jenkins работают в одном контейнере. У меня есть конвейер Дженкинса, который проверяет мое репо (это приложение Djano с файлом докера). Затем мой конвейер создает образ докера с помощью файла Docker. Это построено на демоне хоста docker, поскольку я сопоставил эти тома в моем файле docker-compose.
volumes:
- /var/run/docker.sock : /var/run/docker.sock
Образ создан успешно, и я могу запускать команды в этом образе из моего конвейера Дженкинса, используя
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-доступ ко всем портам из внутреннего трафика, но это тоже не работает.
Пожалуйста, сталкивался ли кто-нибудь с подобными проблемами или есть какие-либо советы для меня.