У меня есть репозиторий с тестами e2e, который использует
- Cucumber (ruby) для написания спецификаций и определений шагов
- Capybara в качестве драйвера для просмотра и взаимодействия с пользователем
- Chromedriver
Я хочу докер-контейнер, который:
- извлекает репозиторий из
<integration-test-repo-url>
- устанавливает все необходимые предпосылки (
ruby
, bundler
, chromedriver
, cucumber
) - входит в
integration-test-repo
и запускает ./runtests.sh
(который устанавливает необходимые гемы с помощью bundle install
, а затем запускает bundle exec cucumber
)
Это то, что у меня есть (используя этот образ докера):
FROM 2glab/ruby-chrome-driver
RUN \
apt-get update && \
apt-get install -qy bundler && \
apt-get install -qy cucumber
RUN useradd -d /home/<user> -ms /bin/bash -g root -G sudo -p <user> <password>
USER <user>
WORKDIR /home/<user>
RUN cd && git clone <my_repo_url>
WORKDIR <my_repo_folder>
RUN bundle install && bundle exec cucumber
К сожалению, это приводит к ошибке:
unknown error: Chrome failed to start: crashed
(Driver info: chromedriver=2.37.544315 (730aa6a5fdba159ac9f4c1e8cbc59bf1b5ce12b7),platform=Linux 4.9.87-linuxkit-aufs x86_64) (Selenium::WebDriver::Error::UnknownError
Как бы это исправить?Хрому чего-то не хватает?Chromedriver что-то упустил?Из того, что я вижу, зависимости для chrome и chromedriver должны быть разрешены в образе докера (см. здесь ).