Dockerfile.prev 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. FROM ubuntu:bionic
  2. LABEL Testrun API
  3. ENV PYTHONDONTWRITEBYTECODE 1
  4. ENV FLASK_APP "app.py"
  5. ENV FLASK_DEBUG True
  6. ENV LANG C.UTF-8
  7. ENV LC_ALL C.UTF-8
  8. RUN apt-get update && apt-get install -y \
  9. python3 python3-pip \
  10. fonts-liberation libappindicator3-1 libasound2 libatk-bridge2.0-0 \
  11. libnspr4 libnss3 lsb-release xdg-utils libxss1 libdbus-glib-1-2 libgbm1 \
  12. curl unzip wget \
  13. xvfb
  14. # install geckodriver
  15. RUN GECKODRIVER_VERSION=`curl https://github.com/mozilla/geckodriver/releases/latest | grep -Po 'v[0-9]+.[0-9]+.[0-9]+'` && \
  16. wget https://github.com/mozilla/geckodriver/releases/download/$GECKODRIVER_VERSION/geckodriver-$GECKODRIVER_VERSION-linux64.tar.gz && \
  17. tar -zxf geckodriver-$GECKODRIVER_VERSION-linux64.tar.gz -C /usr/local/bin && \
  18. chmod +x /usr/local/bin/geckodriver && \
  19. rm geckodriver-$GECKODRIVER_VERSION-linux64.tar.gz
  20. # install firefox and chrome
  21. RUN FIREFOX_SETUP=firefox-setup.tar.bz2 && \
  22. apt-get purge firefox && \
  23. wget -O $FIREFOX_SETUP "https://download.mozilla.org/?product=firefox-latest&os=linux64" && \
  24. tar xjf $FIREFOX_SETUP -C /opt/ && \
  25. ln -s /opt/firefox/firefox /usr/bin/firefox && \
  26. rm $FIREFOX_SETUP
  27. RUN CHROME_SETUP=google-chrome.deb && \
  28. wget -O $CHROME_SETUP "https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb" && \
  29. dpkg -i $CHROME_SETUP && \
  30. apt-get install -y -f && \
  31. rm $CHROME_SETUP
  32. # install browsermob proxy
  33. RUN BROWSERMOB_SETUP=browsermob-proxy.zip && \
  34. wget -O $BROWSERMOB_SETUP "https://github.com/lightbody/browsermob-proxy/releases/download/browsermob-proxy-2.1.4/browsermob-proxy-2.1.4-bin.zip" && \
  35. unzip $BROWSERMOB_SETUP -d /opt/ && \
  36. rm $BROWSERMOB_SETUP
  37. # install java: needed by browsermob
  38. RUN apt-get install -y openjdk-8-jre
  39. # install virtual env
  40. RUN apt update
  41. RUN apt-get install -y python3.6-venv
  42. RUN apt-get install -y libpq-dev
  43. # create working directory
  44. RUN mkdir /baangt
  45. WORKDIR /baangt
  46. RUN pip3 install --upgrade pip
  47. RUN pip3 install gunicorn
  48. RUN pip3 install pymysql cryptography psycopg2
  49. #RUN pip3 install pyqt5==5.14.2
  50. COPY requirements.txt requirements.txt
  51. RUN pip3 install -r requirements.txt
  52. # set up baangt environment
  53. RUN ln -s /opt/browsermob-proxy-2.1.4 /baangt/browsermob-proxy
  54. RUN mkdir /baangt/browserDrivers && \
  55. ln -s /usr/local/bin/geckodriver /baangt/browserDrivers/geckodriver
  56. ADD . /baangt
  57. # add patches here
  58. #COPY DataBaseORM.py /usr/local/lib/python3.6/dist-packages/baangt/base/DataBaseORM.py
  59. RUN chmod +x runservice.sh
  60. EXPOSE 5000
  61. ENTRYPOINT ["./runservice.sh"]