Dockerfile 2.5 KB

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