commit
0da0608be2
|
@ -4,6 +4,8 @@ language: bash
|
|||
dist: trusty
|
||||
|
||||
env:
|
||||
- VERSION=3.5 VARIANT=
|
||||
- VERSION=3.5 VARIANT=slim
|
||||
- VERSION=3.4 VARIANT=
|
||||
- VERSION=3.4 VARIANT=slim
|
||||
- VERSION=3.4 VARIANT=wheezy
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
FROM buildpack-deps:jessie
|
||||
|
||||
# remove several traces of debian python
|
||||
RUN apt-get purge -y python.*
|
||||
|
||||
# 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 F73C700D: public key "Larry Hastings <larry@hastings.org>" imported
|
||||
RUN gpg --keyserver ha.pool.sks-keyservers.net --recv-keys 97FC712E4C024BBEA48A61ED3A5CA953F73C700D
|
||||
|
||||
ENV PYTHON_VERSION 3.5.0b3
|
||||
|
||||
# if this is called "PIP_VERSION", pip explodes with "ValueError: invalid truth value '<VERSION>'"
|
||||
ENV PYTHON_PIP_VERSION 7.1.0
|
||||
|
||||
RUN set -x \
|
||||
&& mkdir -p /usr/src/python \
|
||||
&& curl -SL "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz" -o python.tar.xz \
|
||||
&& curl -SL "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc" -o python.tar.xz.asc \
|
||||
&& gpg --verify python.tar.xz.asc \
|
||||
&& tar -xJC /usr/src/python --strip-components=1 -f python.tar.xz \
|
||||
&& rm python.tar.xz* \
|
||||
&& cd /usr/src/python \
|
||||
&& ./configure --enable-shared --enable-unicode=ucs4 \
|
||||
&& make -j$(nproc) \
|
||||
&& make install \
|
||||
&& ldconfig \
|
||||
&& pip3 install --no-cache-dir --upgrade --ignore-installed pip==$PYTHON_PIP_VERSION \
|
||||
&& find /usr/local \
|
||||
\( -type d -a -name test -o -name tests \) \
|
||||
-o \( -type f -a -name '*.pyc' -o -name '*.pyo' \) \
|
||||
-exec rm -rf '{}' + \
|
||||
&& rm -rf /usr/src/python
|
||||
|
||||
# make some useful symlinks that are expected to exist
|
||||
RUN cd /usr/local/bin \
|
||||
&& ln -s easy_install-3.4 easy_install \
|
||||
&& ln -s idle3 idle \
|
||||
&& ln -s pydoc3 pydoc \
|
||||
&& ln -s python3 python \
|
||||
&& ln -s python-config3 python-config
|
||||
|
||||
CMD ["python3"]
|
|
@ -0,0 +1,9 @@
|
|||
FROM python:3.5
|
||||
|
||||
RUN mkdir -p /usr/src/app
|
||||
WORKDIR /usr/src/app
|
||||
|
||||
ONBUILD COPY requirements.txt /usr/src/app/
|
||||
ONBUILD RUN pip install --no-cache-dir -r requirements.txt
|
||||
|
||||
ONBUILD COPY . /usr/src/app
|
|
@ -0,0 +1,66 @@
|
|||
FROM debian:jessie
|
||||
|
||||
# remove several traces of debian python
|
||||
RUN apt-get purge -y python.*
|
||||
|
||||
# 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
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
ca-certificates \
|
||||
libsqlite3-0 \
|
||||
libssl1.0.0 \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# gpg: key F73C700D: public key "Larry Hastings <larry@hastings.org>" imported
|
||||
RUN gpg --keyserver ha.pool.sks-keyservers.net --recv-keys 97FC712E4C024BBEA48A61ED3A5CA953F73C700D
|
||||
|
||||
ENV PYTHON_VERSION 3.5.0b3
|
||||
|
||||
# if this is called "PIP_VERSION", pip explodes with "ValueError: invalid truth value '<VERSION>'"
|
||||
ENV PYTHON_PIP_VERSION 7.1.0
|
||||
|
||||
RUN set -x \
|
||||
&& buildDeps=' \
|
||||
curl \
|
||||
gcc \
|
||||
libbz2-dev \
|
||||
libc6-dev \
|
||||
libncurses-dev \
|
||||
libreadline-dev \
|
||||
libsqlite3-dev \
|
||||
libssl-dev \
|
||||
make \
|
||||
xz-utils \
|
||||
zlib1g-dev \
|
||||
' \
|
||||
&& apt-get update && apt-get install -y $buildDeps --no-install-recommends && rm -rf /var/lib/apt/lists/* \
|
||||
&& mkdir -p /usr/src/python \
|
||||
&& curl -SL "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz" -o python.tar.xz \
|
||||
&& curl -SL "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc" -o python.tar.xz.asc \
|
||||
&& gpg --verify python.tar.xz.asc \
|
||||
&& tar -xJC /usr/src/python --strip-components=1 -f python.tar.xz \
|
||||
&& rm python.tar.xz* \
|
||||
&& cd /usr/src/python \
|
||||
&& ./configure --enable-shared --enable-unicode=ucs4 \
|
||||
&& make -j$(nproc) \
|
||||
&& make install \
|
||||
&& ldconfig \
|
||||
&& pip3 install --no-cache-dir --upgrade --ignore-installed pip==$PYTHON_PIP_VERSION \
|
||||
&& find /usr/local \
|
||||
\( -type d -a -name test -o -name tests \) \
|
||||
-o \( -type f -a -name '*.pyc' -o -name '*.pyo' \) \
|
||||
-exec rm -rf '{}' + \
|
||||
&& apt-get purge -y --auto-remove $buildDeps \
|
||||
&& rm -rf /usr/src/python
|
||||
|
||||
# make some useful symlinks that are expected to exist
|
||||
RUN cd /usr/local/bin \
|
||||
&& ln -s easy_install-3.4 easy_install \
|
||||
&& ln -s idle3 idle \
|
||||
&& ln -s pydoc3 pydoc \
|
||||
&& ln -s python3 python \
|
||||
&& ln -s python-config3 python-config
|
||||
|
||||
CMD ["python3"]
|
|
@ -18,7 +18,13 @@ echo '# maintainer: InfoSiftr <github@infosiftr.com> (@infosiftr)'
|
|||
for version in "${versions[@]}"; do
|
||||
commit="$(git log -1 --format='format:%H' -- "$version")"
|
||||
fullVersion="$(grep -m1 'ENV PYTHON_VERSION ' "$version/Dockerfile" | cut -d' ' -f3)"
|
||||
versionAliases=( $fullVersion $version ${aliases[$version]} )
|
||||
|
||||
versionAliases=()
|
||||
while [ "$fullVersion" != "$version" -a "${fullVersion%[.a-z-]*}" != "$fullVersion" ]; do
|
||||
versionAliases+=( $fullVersion )
|
||||
fullVersion="${fullVersion%[.a-z-]*}"
|
||||
done
|
||||
versionAliases+=( $version ${aliases[$version]} )
|
||||
|
||||
echo
|
||||
for va in "${versionAliases[@]}"; do
|
||||
|
@ -26,6 +32,7 @@ for version in "${versions[@]}"; do
|
|||
done
|
||||
|
||||
for variant in onbuild slim wheezy; do
|
||||
[ -f "$version/$variant/Dockerfile" ] || continue
|
||||
commit="$(git log -1 --format='format:%H' -- "$version/$variant")"
|
||||
echo
|
||||
for va in "${versionAliases[@]}"; do
|
||||
|
|
|
@ -16,6 +16,10 @@ for version in "${versions[@]}"; do
|
|||
# <span class="release-number"><a href="/downloads/release/python-341/">Python 3.4.1</a></span>
|
||||
fullVersion="$(curl -sSL 'https://www.python.org/downloads/' | awk -F 'Python |</a>' '/<span class="release-number"><a[^>]+>Python '"$version"'./ { print $2 }' | grep -v 'rc' | sort -V | tail -1)"
|
||||
# TODO figure out a better want to handle RCs than just filtering them out wholesale
|
||||
if [ -z "$fullVersion" ]; then
|
||||
echo >&2 "warning: cannot find $version"
|
||||
continue
|
||||
fi
|
||||
(
|
||||
set -x
|
||||
sed -ri '
|
||||
|
|
Loading…
Reference in New Issue