From ec3051292ee63e6d6de79a79fe9ccb45df4848ca Mon Sep 17 00:00:00 2001
From: Evili del Rio <erio@iri.upc.edu>
Date: Wed, 31 Oct 2018 10:39:40 +0100
Subject: [PATCH] Initial import

---
 .dockerignore |  2 ++
 Dockerfile    | 20 ++++++++++++++++++++
 README.md     |  4 ++++
 entrypoint.sh | 26 ++++++++++++++++++++++++++
 4 files changed, 52 insertions(+)
 create mode 100644 .dockerignore
 create mode 100644 Dockerfile
 create mode 100755 entrypoint.sh

diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..4a246ec
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,2 @@
+Dockerfile
+.dockerignore
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..c4c14b7
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,20 @@
+FROM python:alpine
+ARG django_version=1.11
+ARG dev_packages="gcc g++ postgresql-dev"
+ADD ./entrypoint.sh /
+
+VOLUME /static
+
+WORKDIR /app
+
+RUN apk update && \
+        apk add bash git \
+        ${dev_packages} && \
+        DJANGO_VERSION=$(echo ${django_version} | \
+        awk -F. '{bump=$NF+1;for(i=1;i<NF;i++){printf("%s.",$i)};printf("%s",bump)}') && \
+        pip install "Django<=${DJANGO_VERSION}" gunicorn \
+          psycopg2-binary psycopg2 mysql-connector \
+        django-heroku whitenoise[brotli] && \
+        apk del ${dev_packages}
+
+ENTRYPOINT [ "/entrypoint.sh" ]
diff --git a/README.md b/README.md
index 6d2dd9f..794afc4 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,6 @@
 # docker-django
+A docker image to execute Django apps. It uses:
+
+* An environment variable GIT_URL to retrieve the project
+* django-heroku to reconfigure settings via environment variable.
 
diff --git a/entrypoint.sh b/entrypoint.sh
new file mode 100755
index 0000000..3f2c8d5
--- /dev/null
+++ b/entrypoint.sh
@@ -0,0 +1,26 @@
+#!/usr/bin/env bash
+printenv
+set -x
+git clone ${GIT_URL} .
+pip install -r requirements.txt --no-input
+
+DJANGO_SETTINGS_MODULE=${DJANGO_SETTINGS_MODULE:-$(basename ${WSGI_MODULE} .wsgi).settings}
+
+# Override static content
+cat > settings.py <<EOF
+from ${DJANGO_SETTINGS_MODULE} import *
+STATIC_ROOT='/static'
+EOF
+
+export DJANGO_SETTINGS_MODULE=settings
+
+python manage.py collectstatic --no-input
+
+python manage.py migrate
+
+if [ -z "${WSGI_MODULE}" ]
+then
+    export WSGI_MODULE=$(basename $(dirname $(find . -name wsgi.py | head -1))).wsgi
+fi
+
+gunicorn --log-level=INFO ${WSGI_MODULE} $*
-- 
GitLab