Dockerfile 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. FROM debian:wheezy
  2. RUN set -ex; \
  3. apt-get update -qq; \
  4. apt-get install -y \
  5. locales \
  6. gcc \
  7. make \
  8. zlib1g \
  9. zlib1g-dev \
  10. libssl-dev \
  11. git \
  12. ca-certificates \
  13. curl \
  14. libsqlite3-dev \
  15. libbz2-dev \
  16. ; \
  17. rm -rf /var/lib/apt/lists/*
  18. RUN curl -fsSL -o dockerbins.tgz "https://download.docker.com/linux/static/stable/x86_64/docker-17.12.0-ce.tgz" && \
  19. SHA256=692e1c72937f6214b1038def84463018d8e320c8eaf8530546c84c2f8f9c767d; \
  20. echo "${SHA256} dockerbins.tgz" | sha256sum -c - && \
  21. tar xvf dockerbins.tgz docker/docker --strip-components 1 && \
  22. mv docker /usr/local/bin/docker && \
  23. chmod +x /usr/local/bin/docker && \
  24. rm dockerbins.tgz
  25. # Build Python 2.7.13 from source
  26. RUN set -ex; \
  27. curl -LO https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz && \
  28. SHA256=a4f05a0720ce0fd92626f0278b6b433eee9a6173ddf2bced7957dfb599a5ece1; \
  29. echo "${SHA256} Python-2.7.13.tgz" | sha256sum -c - && \
  30. tar -xzf Python-2.7.13.tgz; \
  31. cd Python-2.7.13; \
  32. ./configure --enable-shared; \
  33. make; \
  34. make install; \
  35. cd ..; \
  36. rm -rf /Python-2.7.13; \
  37. rm Python-2.7.13.tgz
  38. # Build python 3.4 from source
  39. RUN set -ex; \
  40. curl -LO https://www.python.org/ftp/python/3.4.6/Python-3.4.6.tgz && \
  41. SHA256=fe59daced99549d1d452727c050ae486169e9716a890cffb0d468b376d916b48; \
  42. echo "${SHA256} Python-3.4.6.tgz" | sha256sum -c - && \
  43. tar -xzf Python-3.4.6.tgz; \
  44. cd Python-3.4.6; \
  45. ./configure --enable-shared; \
  46. make; \
  47. make install; \
  48. cd ..; \
  49. rm -rf /Python-3.4.6; \
  50. rm Python-3.4.6.tgz
  51. # Make libpython findable
  52. ENV LD_LIBRARY_PATH /usr/local/lib
  53. # Install pip
  54. RUN set -ex; \
  55. curl -LO https://bootstrap.pypa.io/get-pip.py && \
  56. SHA256=19dae841a150c86e2a09d475b5eb0602861f2a5b7761ec268049a662dbd2bd0c; \
  57. echo "${SHA256} get-pip.py" | sha256sum -c - && \
  58. python get-pip.py
  59. # Python3 requires a valid locale
  60. RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && locale-gen
  61. ENV LANG en_US.UTF-8
  62. RUN useradd -d /home/user -m -s /bin/bash user
  63. WORKDIR /code/
  64. RUN pip install tox==2.1.1
  65. ADD requirements.txt /code/
  66. ADD requirements-dev.txt /code/
  67. ADD .pre-commit-config.yaml /code/
  68. ADD setup.py /code/
  69. ADD tox.ini /code/
  70. ADD compose /code/compose/
  71. RUN tox --notest
  72. ADD . /code/
  73. RUN chown -R user /code/
  74. ENTRYPOINT ["/code/.tox/py27/bin/docker-compose"]