2020-07-07 14:21:33 +00:00
|
|
|
FROM circleci/python:3.8.2-buster
|
2018-10-08 19:33:33 +00:00
|
|
|
|
2020-06-06 12:18:21 +00:00
|
|
|
RUN sudo apt-get update \
|
2018-10-15 13:28:11 +00:00
|
|
|
# bzip2 and libgconf-2-4 are necessary for extracting firefox and running chrome, respectively
|
2018-10-31 13:47:52 +00:00
|
|
|
&& sudo apt-get install bzip2 libgconf-2-4 node-less cmake build-essential clang-format-6.0 \
|
2020-06-06 12:18:21 +00:00
|
|
|
uglifyjs chromium ccache libncurses6 gfortran f2c swig g++-8 \
|
2018-10-09 14:22:25 +00:00
|
|
|
&& sudo apt-get clean \
|
|
|
|
&& sudo apt-get autoremove \
|
2020-06-05 22:30:43 +00:00
|
|
|
&& test "Comment: Hardcode nodejs path for uglifyjs, so it doesn't conflict with emcc's nodejs" \
|
|
|
|
&& test $(which node) = /usr/bin/node && test $(which uglifyjs) = /usr/bin/uglifyjs \
|
|
|
|
&& echo '#!/bin/sh -e\nexec /usr/bin/node /usr/bin/uglifyjs "$@"' >/tmp/uglifyjs \
|
|
|
|
&& chmod a+x /tmp/uglifyjs && sudo mv -t /usr/local/bin /tmp/uglifyjs
|
2018-10-08 19:33:33 +00:00
|
|
|
|
2020-06-05 22:30:43 +00:00
|
|
|
RUN sudo pip install pytest pytest-xdist pytest-instafail pytest-rerunfailures selenium PyYAML flake8 \
|
2018-10-15 12:05:58 +00:00
|
|
|
&& sudo rm -rf /root/.cache/pip
|
2018-10-08 19:33:33 +00:00
|
|
|
|
|
|
|
# Get recent version of Firefox and geckodriver
|
2020-07-08 22:37:02 +00:00
|
|
|
RUN sudo wget --quiet -O firefox.tar.bz2 https://ftp.mozilla.org/pub/firefox/releases/70.0.1/linux-x86_64/en-US/firefox-70.0.1.tar.bz2 \
|
2018-10-09 14:22:25 +00:00
|
|
|
&& sudo tar jxf firefox.tar.bz2 \
|
|
|
|
&& sudo rm -f /usr/local/bin/firefox \
|
|
|
|
&& sudo ln -s $PWD/firefox/firefox /usr/local/bin/firefox \
|
2020-07-08 22:37:02 +00:00
|
|
|
&& sudo wget --quiet https://github.com/mozilla/geckodriver/releases/download/v0.26.0/geckodriver-v0.26.0-linux64.tar.gz \
|
|
|
|
&& sudo tar zxf geckodriver-v0.26.0-linux64.tar.gz -C /usr/local/bin \
|
|
|
|
&& sudo rm -f firefox.tar.bz2 geckodriver-v0.26.0-linux64.tar.gz
|
2018-10-08 19:33:33 +00:00
|
|
|
|
|
|
|
# Get recent version of chromedriver
|
2018-10-09 14:22:25 +00:00
|
|
|
RUN sudo wget --quiet https://chromedriver.storage.googleapis.com/2.41/chromedriver_linux64.zip \
|
|
|
|
&& sudo unzip chromedriver_linux64.zip \
|
2018-10-15 12:05:58 +00:00
|
|
|
&& sudo mv $PWD/chromedriver /usr/local/bin \
|
|
|
|
&& sudo rm -f chromedriver_linux64.zip
|
2018-10-08 19:33:33 +00:00
|
|
|
|
2018-10-15 12:05:58 +00:00
|
|
|
|
|
|
|
# start xvfb automatically to avoid needing to express in circle.yml
|
|
|
|
ENV DISPLAY :99
|
|
|
|
RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \
|
|
|
|
&& chmod +x /tmp/entrypoint \
|
|
|
|
&& sudo mv /tmp/entrypoint /docker-entrypoint.sh
|
|
|
|
|
|
|
|
# ensure that the build agent doesn't override the entrypoint
|
|
|
|
LABEL com.circleci.preserve-entrypoint=true
|
|
|
|
|
|
|
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
|
|
|
CMD ["/bin/sh"]
|
2018-10-08 19:33:33 +00:00
|
|
|
WORKDIR /src
|