Использование PhangomJS в Docker Alpine

Я пытаюсь использовать Дженкинс в качестве док-контейнера. Для этого я использую официальный образ докера. Поскольку у нас есть несколько интеграционных тестов, основанных на Selenium (действительно Vaadin Workbench), мне нужно запускать phantomjs без головы. Тесты выполняются так же, как и перед докеризацией. Мое веб-приложение (сервер) выполняется правильно, а phantomjs запускается позже как клиент и выполняет все тесты правильно. Это ожидаемое поведение.

Теперь мне нравится идея использовать Дженкинса в альпийской системе. В общем, я использую alpine в других док-контейнерах из-за его небольшого размера. Официальное изображение докера Jenkins также имеет альпийское изображение, которое я могу использовать. В общем, у меня нет проблем с другими инструментами, которые мне нужно установить (ansible,...). И они прекрасно работают в альпийской версии. Но я столкнулся с проблемой с фантомами.

Прежде всего, я устанавливаю phantomjs из проекта github с альпийской компиляцией. Здесь есть команды, которые я использую:

RUN apk --no-cache add fontconfig && \
mkdir -p /usr/share && \
curl -L https://github.com/Overbryd/docker-phantomjs-alpine/releases/download/2.11/phantomjs-alpine-x86_64.tar.bz2 | tar xj --directory /usr/share && \
chmod +x /usr/share/phantomjs/phantomjs && \
ln -s /usr/share/phantomjs/phantomjs /usr/bin/phantomjs

Кажется, что работает отлично. Если я получу доступ к Docker-контейнеру с docker exec -it jenkins shЯ могу выполнить Phantomjs из командной строки. Но когда Дженкинс выполняет тесты, у меня есть эта ошибка:

WebDriverException: Timed out waiting for driver server to start

Перед началом любого теста. Сервер приложений работает (я могу подключиться к нему из моего браузера), но jenkins не может запустить phantomjs для его подключения. Я проверил журналы phantomjs, чтобы увидеть, если это проблема, но у него есть права на запись (тем не менее, файл пуст). Еще я могу выполнить фантомы из командной строки, но jenkins + selenium не может.

Конечно, запускать jenkins на альпийской машине не обязательно, и теперь я возвращаюсь к стандартному образу докера, основанному на openjdk. Но теперь мне интересно об этой проблеме, и я не уверен, является ли это проблемой фантома или альпийской проблемой. Или, может быть, мне нужны дополнительные настройки или пакеты для запуска phantomjs в alpine.

У кого-нибудь есть такая же проблема при использовании jenkins + alpine + selenium (или эквивалент)? Любой ключ к тому, что может вызвать эту ошибку?

0 ответов

Другие вопросы по тегам