└── Dockerfile /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM resin/armv7hf-debian-qemu 2 | 3 | RUN [ "cross-build-start" ] 4 | 5 | RUN apt-get update && apt-get install -y \ 6 | autoconf \ 7 | build-essential \ 8 | ca-certificates \ 9 | curl \ 10 | imagemagick \ 11 | libbz2-dev \ 12 | libcurl4-openssl-dev \ 13 | libevent-dev \ 14 | libffi-dev \ 15 | libglib2.0-dev \ 16 | libjpeg-dev \ 17 | libmagickcore-dev \ 18 | libmagickwand-dev \ 19 | libmysqlclient-dev \ 20 | libncurses-dev \ 21 | libpq-dev \ 22 | libreadline-dev \ 23 | libsqlite3-dev \ 24 | libssl-dev \ 25 | libxml2-dev \ 26 | libxslt-dev \ 27 | libyaml-dev \ 28 | zlib1g-dev \ 29 | && rm -rf /var/lib/apt/lists/* 30 | 31 | # remove several traces of debian python 32 | RUN apt-get purge -y python.* 33 | 34 | # http://bugs.python.org/issue19846 35 | # > At the moment, setting "LANG=C" on a Linux system *fundamentally breaks Python 3*, and that's not OK. 36 | ENV LANG C.UTF-8 37 | 38 | # import gpg keys 39 | RUN gpg --keyserver ha.pool.sks-keyservers.net --recv-keys C01E1CAD5EA2C4F0B8E3571504C367C218ADD4FF 40 | 41 | # key 63C7CC90: public key "Simon McVittie " imported 42 | RUN gpg --keyserver keyring.debian.org --recv-keys 4DE8FF2A63C7CC90 43 | 44 | # key 3372DCFA: public key "Donald Stufft (dstufft) " imported 45 | RUN gpg --keyserver pgp.mit.edu --recv-key 6E3CBCE93372DCFA 46 | 47 | ENV PYTHON_VERSION 2.7.10 48 | 49 | # if this is called "PIP_VERSION", pip explodes with "ValueError: invalid truth value ''" 50 | ENV PYTHON_PIP_VERSION 7.1.2 51 | 52 | ENV SETUPTOOLS_SHA256 4846755f18c0528d87583342d5e1221052858ce9922c5c38acbadd5015bd683d 53 | ENV SETUPTOOLS_VERSION 18.5 54 | 55 | RUN set -x \ 56 | && mkdir -p /usr/src/python \ 57 | && curl -SL "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz" -o python.tar.xz \ 58 | && curl -SL "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc" -o python.tar.xz.asc \ 59 | && gpg --verify python.tar.xz.asc \ 60 | && tar -xJC /usr/src/python --strip-components=1 -f python.tar.xz \ 61 | && rm python.tar.xz* \ 62 | && cd /usr/src/python \ 63 | && ./configure --enable-shared --enable-unicode=ucs4 \ 64 | && make -j$(nproc) \ 65 | && make install \ 66 | && ldconfig \ 67 | && mkdir -p /usr/src/python/setuptools \ 68 | && curl -SLO https://pypi.python.org/packages/source/s/setuptools/setuptools-$SETUPTOOLS_VERSION.tar.gz \ 69 | && echo "$SETUPTOOLS_SHA256 setuptools-$SETUPTOOLS_VERSION.tar.gz" > setuptools-$SETUPTOOLS_VERSION.tar.gz.sha256sum \ 70 | && sha256sum -c setuptools-$SETUPTOOLS_VERSION.tar.gz.sha256sum \ 71 | && tar -xzC /usr/src/python/setuptools --strip-components=1 -f setuptools-$SETUPTOOLS_VERSION.tar.gz \ 72 | && cd /usr/src/python/setuptools \ 73 | && python2 ez_setup.py \ 74 | && mkdir -p /usr/src/python/pip \ 75 | && curl -SL "https://pypi.python.org/packages/source/p/pip/pip-$PYTHON_PIP_VERSION.tar.gz" -o pip.tar.gz \ 76 | && curl -SL "https://pypi.python.org/packages/source/p/pip/pip-$PYTHON_PIP_VERSION.tar.gz.asc" -o pip.tar.gz.asc \ 77 | && gpg --verify pip.tar.gz.asc \ 78 | && tar -xzC /usr/src/python/pip --strip-components=1 -f pip.tar.gz \ 79 | && rm pip.tar.gz* \ 80 | && cd /usr/src/python/pip \ 81 | && python2 setup.py install \ 82 | && cd .. \ 83 | && find /usr/local \ 84 | \( -type d -a -name test -o -name tests \) \ 85 | -o \( -type f -a -name '*.pyc' -o -name '*.pyo' \) \ 86 | -exec rm -rf '{}' + \ 87 | && cd / \ 88 | && rm -rf /usr/src/python 89 | 90 | RUN [ "cross-build-end" ] 91 | --------------------------------------------------------------------------------