From e0cac3a840adc0e36b2246b26d6aec8b0eebaa09 Mon Sep 17 00:00:00 2001 From: Rares Vernica Date: Mon, 21 Mar 2016 10:58:25 -0700 Subject: [PATCH 1/8] Use Alpine 3.3 as base for 2.7 image. --- 2.7/Dockerfile | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/2.7/Dockerfile b/2.7/Dockerfile index 87f56cf..edc83b2 100644 --- a/2.7/Dockerfile +++ b/2.7/Dockerfile @@ -1,12 +1,11 @@ -FROM python:2.7-slim +FROM alpine:3.3 -RUN apt-get update && apt-get install -y \ - gcc \ - gettext \ - mysql-client libmysqlclient-dev \ - postgresql-client libpq-dev \ - sqlite3 \ - --no-install-recommends && rm -rf /var/lib/apt/lists/* +RUN apk add --update \ + gcc musl-dev python-dev py-pip \ + mariadb-dev \ + postgresql-dev \ + sqlite && \ + rm -rf /var/cache/apk/* ENV DJANGO_VERSION 1.9.4 From ce0139b8407c000f4dbf64e11e2e0b45e55b161a Mon Sep 17 00:00:00 2001 From: Rares Vernica Date: Mon, 21 Mar 2016 11:08:48 -0700 Subject: [PATCH 2/8] Use Alpine 3.3 as base for 2.7 ONBUILD image. --- 2.7/onbuild/Dockerfile | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/2.7/onbuild/Dockerfile b/2.7/onbuild/Dockerfile index c2cde45..ea9223a 100644 --- a/2.7/onbuild/Dockerfile +++ b/2.7/onbuild/Dockerfile @@ -1,4 +1,4 @@ -FROM python:2.7 +FROM alpine:3.3 RUN mkdir -p /usr/src/app WORKDIR /usr/src/app @@ -8,13 +8,12 @@ ONBUILD RUN pip install --no-cache-dir -r requirements.txt ONBUILD COPY . /usr/src/app -RUN apt-get update && apt-get install -y \ - gcc \ - gettext \ - mysql-client libmysqlclient-dev \ - postgresql-client libpq-dev \ - sqlite3 \ - --no-install-recommends && rm -rf /var/lib/apt/lists/* +RUN apk add --update \ + gcc musl-dev python-dev py-pip \ + mariadb-dev \ + postgresql-dev \ + sqlite && \ + rm -rf /var/cache/apk/* EXPOSE 8000 CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"] From 87a7d19953fed2fc0ee7f8875874bd083746db94 Mon Sep 17 00:00:00 2001 From: Rares Vernica Date: Mon, 21 Mar 2016 11:23:13 -0700 Subject: [PATCH 3/8] Use update-cache instead of update for apk. --- 2.7/Dockerfile | 6 +++--- 2.7/onbuild/Dockerfile | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/2.7/Dockerfile b/2.7/Dockerfile index edc83b2..5a6c158 100644 --- a/2.7/Dockerfile +++ b/2.7/Dockerfile @@ -1,11 +1,11 @@ FROM alpine:3.3 -RUN apk add --update \ +RUN apk add \ gcc musl-dev python-dev py-pip \ mariadb-dev \ postgresql-dev \ - sqlite && \ - rm -rf /var/cache/apk/* + sqlite \ + --update-cache && rm -rf /var/cache/apk/* ENV DJANGO_VERSION 1.9.4 diff --git a/2.7/onbuild/Dockerfile b/2.7/onbuild/Dockerfile index ea9223a..d4040b6 100644 --- a/2.7/onbuild/Dockerfile +++ b/2.7/onbuild/Dockerfile @@ -8,12 +8,12 @@ ONBUILD RUN pip install --no-cache-dir -r requirements.txt ONBUILD COPY . /usr/src/app -RUN apk add --update \ +RUN apk add \ gcc musl-dev python-dev py-pip \ mariadb-dev \ postgresql-dev \ - sqlite && \ - rm -rf /var/cache/apk/* + sqlite \ + --update-cache && rm -rf /var/cache/apk/* EXPOSE 8000 CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"] From 4f701e1cd70af95a8984874e5c671f07b8eb3085 Mon Sep 17 00:00:00 2001 From: Rares Vernica Date: Mon, 21 Mar 2016 14:43:55 -0700 Subject: [PATCH 4/8] Use 'virtual' for adding dependencies required to build Python packages which are later removed. --- 2.7/Dockerfile | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/2.7/Dockerfile b/2.7/Dockerfile index 5a6c158..64078aa 100644 --- a/2.7/Dockerfile +++ b/2.7/Dockerfile @@ -1,12 +1,14 @@ FROM alpine:3.3 -RUN apk add \ - gcc musl-dev python-dev py-pip \ - mariadb-dev \ - postgresql-dev \ - sqlite \ - --update-cache && rm -rf /var/cache/apk/* - ENV DJANGO_VERSION 1.9.4 -RUN pip install mysqlclient psycopg2 django=="$DJANGO_VERSION" +RUN apk add --update-cache \ + bash py-pip \ + mariadb-libs libpq sqlite && \ + apk add --virtual=build-deps \ + gcc musl-dev python-dev \ + mariadb-dev postgresql-dev && \ + pip install mysqlclient \ + psycopg2 \ + django=="$DJANGO_VERSION" && \ + apk del build-deps && rm -rf /var/cache/apk/* From 1f11afd6349593a48f40650468179d30cb36c9c5 Mon Sep 17 00:00:00 2001 From: Rares Vernica Date: Mon, 21 Mar 2016 15:11:26 -0700 Subject: [PATCH 5/8] Use 'virtual' for adding dependencies for ONBUILD which are later removed. --- 2.7/onbuild/Dockerfile | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/2.7/onbuild/Dockerfile b/2.7/onbuild/Dockerfile index d4040b6..17ba90d 100644 --- a/2.7/onbuild/Dockerfile +++ b/2.7/onbuild/Dockerfile @@ -4,16 +4,17 @@ 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 RUN apk add --virtual=build-deps --update-cache \ + gcc musl-dev python-dev \ + mariadb-dev postgresql-dev && \ + pip install --no-cache-dir -r requirements.txt && \ + apk del build-deps && rm -rf /var/cache/apk/* ONBUILD COPY . /usr/src/app -RUN apk add \ - gcc musl-dev python-dev py-pip \ - mariadb-dev \ - postgresql-dev \ - sqlite \ - --update-cache && rm -rf /var/cache/apk/* +RUN apk add --update-cache \ + bash py-pip \ + mariadb-libs libpq sqlite && rm -rf /var/cache/apk/* EXPOSE 8000 CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"] From c822659deb091776293df20a52d5bd29ff631a22 Mon Sep 17 00:00:00 2001 From: Rares Vernica Date: Tue, 22 Mar 2016 09:19:49 -0700 Subject: [PATCH 6/8] Use Alpine 3.3 as base for Python 3 image (both regular and onbuild). Rename 3.4 to 3.5 as Apline comes with Python 3.5. --- 3.4/Dockerfile | 13 ------------- 3.4/onbuild/Dockerfile | 20 -------------------- 3.5/Dockerfile | 19 +++++++++++++++++++ 3.5/onbuild/Dockerfile | 28 ++++++++++++++++++++++++++++ 4 files changed, 47 insertions(+), 33 deletions(-) delete mode 100644 3.4/Dockerfile delete mode 100644 3.4/onbuild/Dockerfile create mode 100644 3.5/Dockerfile create mode 100644 3.5/onbuild/Dockerfile diff --git a/3.4/Dockerfile b/3.4/Dockerfile deleted file mode 100644 index 8b464f9..0000000 --- a/3.4/Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -FROM python:3.4-slim - -RUN apt-get update && apt-get install -y \ - gcc \ - gettext \ - mysql-client libmysqlclient-dev \ - postgresql-client libpq-dev \ - sqlite3 \ - --no-install-recommends && rm -rf /var/lib/apt/lists/* - -ENV DJANGO_VERSION 1.9.4 - -RUN pip install mysqlclient psycopg2 django=="$DJANGO_VERSION" diff --git a/3.4/onbuild/Dockerfile b/3.4/onbuild/Dockerfile deleted file mode 100644 index 580e006..0000000 --- a/3.4/onbuild/Dockerfile +++ /dev/null @@ -1,20 +0,0 @@ -FROM python:3.4 - -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 - -RUN apt-get update && apt-get install -y \ - gcc \ - gettext \ - mysql-client libmysqlclient-dev \ - postgresql-client libpq-dev \ - sqlite3 \ - --no-install-recommends && rm -rf /var/lib/apt/lists/* - -EXPOSE 8000 -CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"] diff --git a/3.5/Dockerfile b/3.5/Dockerfile new file mode 100644 index 0000000..1af5414 --- /dev/null +++ b/3.5/Dockerfile @@ -0,0 +1,19 @@ +FROM alpine:3.3 + +ENV DJANGO_VERSION 1.9.4 + +RUN apk add --update-cache \ + bash python3 \ + mariadb-libs libpq sqlite && \ + apk add --virtual=build-deps \ + gcc musl-dev python3-dev \ + wget ca-certificates \ + mariadb-dev postgresql-dev && \ + wget https://bootstrap.pypa.io/get-pip.py --no-verbose --output-document - | \ + python3 && \ + pip install mysqlclient \ + psycopg2 \ + django=="$DJANGO_VERSION" && \ + apk del build-deps && rm -rf /var/cache/apk/* + +RUN cd /usr/bin && ln -sf python3 python diff --git a/3.5/onbuild/Dockerfile b/3.5/onbuild/Dockerfile new file mode 100644 index 0000000..807b6f4 --- /dev/null +++ b/3.5/onbuild/Dockerfile @@ -0,0 +1,28 @@ +FROM alpine:3.3 + +RUN mkdir -p /usr/src/app +WORKDIR /usr/src/app + +ONBUILD COPY requirements.txt /usr/src/app/ +ONBUILD RUN apk add --virtual=build-deps --update-cache \ + gcc musl-dev python3-dev \ + mariadb-dev postgresql-dev && \ + pip install --no-cache-dir -r requirements.txt && \ + apk del build-deps && rm -rf /var/cache/apk/* + +ONBUILD COPY . /usr/src/app + +# A bug in Alpine ca-certificates package requires installing openssl-dev as well +RUN apk add --update-cache \ + bash python3 \ + mariadb-libs libpq sqlite && \ + apk add --virtual=pip-deps \ + wget ca-certificates openssl-dev && \ + wget https://bootstrap.pypa.io/get-pip.py --no-verbose --output-document - | \ + python3 && \ + apk del pip-deps && rm -rf /var/cache/apk/* + +RUN cd /usr/bin && ln -sf python3 python + +EXPOSE 8000 +CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"] From 8b20014e8eb92cc44ad0430da62b8b79e0ceedab Mon Sep 17 00:00:00 2001 From: Rares Vernica Date: Tue, 22 Mar 2016 09:22:22 -0700 Subject: [PATCH 7/8] Update Python 3 version in Travis. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 96f3b73..7545651 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,7 @@ language: bash services: docker env: - - PY_VERSION=3.4 + - PY_VERSION=3.5 - PY_VERSION=2.7 install: From e10eb92aba0e99eebbca44c09cc824532bdc2353 Mon Sep 17 00:00:00 2001 From: "Rares Vernica (cessna, fedora)" Date: Tue, 8 Nov 2016 10:27:44 -0800 Subject: [PATCH 8/8] Bump Alpine version to 3.4 --- 2.7/Dockerfile | 2 +- 3.5/Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/2.7/Dockerfile b/2.7/Dockerfile index 14a2061..a0c9f5e 100644 --- a/2.7/Dockerfile +++ b/2.7/Dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.3 +FROM alpine:3.4 ENV DJANGO_VERSION 1.10.3 diff --git a/3.5/Dockerfile b/3.5/Dockerfile index 6c79caa..30fcd10 100644 --- a/3.5/Dockerfile +++ b/3.5/Dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.3 +FROM alpine:3.4 ENV DJANGO_VERSION 1.10.3