Last active
August 3, 2016 03:34
-
-
Save ChrisPatten/d9299b3100ef1089a2b0046bdb202243 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM hypriot/rpi-alpine-scratch:v3.4 | |
CMD ["/bin/bash"] | |
# http://bugs.python.org/issue19846 | |
# > At the moment, setting "LANG=C" on a Linux system *fundamentally breaks Python 3*, and that's not OK. | |
ENV LANG C.UTF-8 | |
# gpg: key 18ADD4FF: public key "Benjamin Peterson <benjamin@python.org>" imported | |
ENV GPG_KEY C01E1CAD5EA2C4F0B8E3571504C367C218ADD4FF | |
ENV PYTHON_VERSION 2.7.12 | |
# if this is called "PIP_VERSION", pip explodes with "ValueError: invalid truth value '<VERSION>'" | |
ENV PYTHON_PIP_VERSION 8.1.2 | |
RUN echo "ipv6" >> /etc/modules | |
RUN { echo "http://nl.alpinelinux.org/alpine/v3.1/main"; \ | |
echo "http://nl.alpinelinux.org/alpine/v3.1/main"; \ | |
echo "http://dl-2.alpinelinux.org/alpine/v3.1/main"; \ | |
echo "http://dl-3.alpinelinux.org/alpine/v3.1/main"; \ | |
echo "http://dl-4.alpinelinux.org/alpine/v3.1/main"; \ | |
echo "http://dl-5.alpinelinux.org/alpine/v3.1/main"; } >> /etc/apk/repositories | |
RUN apk update && \ | |
apk upgrade && \ | |
apk add bash && \ | |
rm -rf /var/cache/apk/* | |
RUN set -ex \ | |
&& apk add --virtual .fetch-deps curl gnupg tar xz \ | |
&& curl -fSL "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz" -o python.tar.xz \ | |
&& curl -fSL "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc" -o python.tar.xz.asc \ | |
&& export GNUPGHOME="$(mktemp -d)" \ | |
&& gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$GPG_KEY" \ | |
&& gpg --batch --verify python.tar.xz.asc python.tar.xz \ | |
&& rm -r "$GNUPGHOME" python.tar.xz.asc \ | |
&& mkdir -p /usr/src/python \ | |
&& tar -xJC /usr/src/python --strip-components=1 -f python.tar.xz \ | |
&& rm python.tar.xz \ | |
\ | |
&& apk add --virtual .build-deps \ | |
bzip2-dev \ | |
gcc \ | |
libc-dev \ | |
linux-headers \ | |
make \ | |
ncurses-dev \ | |
openssl-dev \ | |
pax-utils \ | |
readline-dev \ | |
sqlite-dev \ | |
tcl-dev \ | |
tk \ | |
tk-dev \ | |
zlib-dev \ | |
&& cd /usr/src/python \ | |
&& ./configure \ | |
--enable-shared \ | |
--enable-unicode=ucs4 \ | |
&& make -j$(getconf _NPROCESSORS_ONLN) \ | |
&& make install \ | |
&& curl -fSL 'https://bootstrap.pypa.io/get-pip.py' | python2 \ | |
&& pip install --no-cache-dir --upgrade pip==$PYTHON_PIP_VERSION \ | |
&& [ "$(pip list | awk -F '[ ()]+' '$1 == "pip" { print $2; exit }')" = "$PYTHON_PIP_VERSION" ] \ | |
&& find /usr/local -depth \ | |
\( \ | |
\( -type d -a -name test -o -name tests \) \ | |
-o \ | |
\( -type f -a -name '*.pyc' -o -name '*.pyo' \) \ | |
\) -exec rm -rf '{}' + \ | |
&& runDeps="$( \ | |
scanelf --needed --nobanner --recursive /usr/local \ | |
| awk '{ gsub(/,/, "\nso:", $2); print "so:" $2 }' \ | |
| sort -u \ | |
| xargs -r apk info --installed \ | |
| sort -u \ | |
)" \ | |
&& apk add --virtual .python-rundeps $runDeps \ | |
&& apk del .build-deps .fetch-deps \ | |
&& rm -rf /usr/src/python ~/.cache | |
CMD ["python2"] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment