在码头工人容器中运行firefox上的黄瓜测试

时间:2017-01-19 14:20:32

标签: ruby selenium docker cucumber

我试图使用firefox在docker容器中运行我的黄瓜测试。当我的代码尝试访问' google.com'

时,我收到此错误
Net::ReadTimeout (Net::ReadTimeout)

这是我的Dockerfile

FROM ruby:2.2.2

RUN mkdir /app
WORKDIR /app
RUN gem update

ADD Gemfile /app/Gemfile
ADD Gemfile.lock /app/Gemfile.lock

RUN bundle install

RUN apt-get update && apt-get install -y --fix-missing iceweasel xvfb unzip

ENV   GECKODRIVER_VERSION v0.13.0
RUN   echo $GECKODRIVER_VERSION
RUN   mkdir -p /opt/geckodriver_folder
RUN   wget -O /tmp/geckodriver_linux64.tar.gz https://github.com/mozilla/geckodriver/releases/download/$GECKODRIVER_VERSION/geckodriver-$GECKODRIVER_VERSION-linux64.tar.gz
RUN   tar xf /tmp/geckodriver_linux64.tar.gz -C /opt/geckodriver_folder
RUN   rm /tmp/geckodriver_linux64.tar.gz
RUN   chmod +x /opt/geckodriver_folder/geckodriver
RUN   ln -fs /opt/geckodriver_folder/geckodriver /usr/local/bin/geckodriver

ADD features /app/features

我尝试将read_timeout增加到120但没有效果。 当我猛击到容器并运行firefox时,它说"没有指定显示"

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。这对我有用:https://github.com/juandelgado/docker-headless-firefox-cucumber/blob/master/Dockerfile

FROM ruby:2.4-slim
MAINTAINER Juan Delgado <juan@ustwo.com>

RUN mkdir /home/ustwo
WORKDIR /home/ustwo

RUN apt-get update && \
    apt-get install -y xvfb build-essential libffi-dev wget firefox-esr && \
    wget https://github.com/mozilla/geckodriver/releases/download/v0.17.0/geckodriver-v0.17.0-linux64.tar.gz && \
    tar -zxvf geckodriver-v0.17.0-linux64.tar.gz && \
    chmod +x geckodriver && \
    mv geckodriver /usr/local/bin && \
    rm geckodriver-v0.17.0-linux64.tar.gz

COPY Gemfile Gemfile
COPY Gemfile.lock Gemfile.lock

RUN bundle

RUN ["cucumber", "--version"]