Dockerfile 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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 https://get.docker.com/builds/Linux/x86_64/docker-1.8.3 \
  19. -o /usr/local/bin/docker && \
  20. SHA256=f024bc65c45a3778cf07213d26016075e8172de8f6e4b5702bedde06c241650f; \
  21. echo "${SHA256} /usr/local/bin/docker" | sha256sum -c - && \
  22. chmod +x /usr/local/bin/docker
  23. # Build Python 2.7.13 from source
  24. RUN set -ex; \
  25. curl -LO https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz && \
  26. SHA256=a4f05a0720ce0fd92626f0278b6b433eee9a6173ddf2bced7957dfb599a5ece1; \
  27. echo "${SHA256} Python-2.7.13.tgz" | sha256sum -c - && \
  28. tar -xzf Python-2.7.13.tgz; \
  29. cd Python-2.7.13; \
  30. ./configure --enable-shared; \
  31. make; \
  32. make install; \
  33. cd ..; \
  34. rm -rf /Python-2.7.13; \
  35. rm Python-2.7.13.tgz
  36. # Build python 3.4 from source
  37. RUN set -ex; \
  38. curl -LO https://www.python.org/ftp/python/3.4.6/Python-3.4.6.tgz && \
  39. SHA256=fe59daced99549d1d452727c050ae486169e9716a890cffb0d468b376d916b48; \
  40. echo "${SHA256} Python-3.4.6.tgz" | sha256sum -c - && \
  41. tar -xzf Python-3.4.6.tgz; \
  42. cd Python-3.4.6; \
  43. ./configure --enable-shared; \
  44. make; \
  45. make install; \
  46. cd ..; \
  47. rm -rf /Python-3.4.6; \
  48. rm Python-3.4.6.tgz
  49. # Make libpython findable
  50. ENV LD_LIBRARY_PATH /usr/local/lib
  51. # Install pip
  52. RUN set -ex; \
  53. curl -LO https://bootstrap.pypa.io/get-pip.py && \
  54. SHA256=19dae841a150c86e2a09d475b5eb0602861f2a5b7761ec268049a662dbd2bd0c; \
  55. echo "${SHA256} get-pip.py" | sha256sum -c - && \
  56. python get-pip.py
  57. # Python3 requires a valid locale
  58. RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && locale-gen
  59. ENV LANG en_US.UTF-8
  60. RUN useradd -d /home/user -m -s /bin/bash user
  61. WORKDIR /code/
  62. RUN pip install tox==2.1.1
  63. ADD requirements.txt /code/
  64. ADD requirements-dev.txt /code/
  65. ADD .pre-commit-config.yaml /code/
  66. ADD setup.py /code/
  67. ADD tox.ini /code/
  68. ADD compose /code/compose/
  69. RUN tox --notest
  70. ADD . /code/
  71. RUN chown -R user /code/
  72. ENTRYPOINT ["/code/.tox/py27/bin/docker-compose"]