[damned-lies] feat #85: use Damned Lies in Docker



commit bc22f77c3e2559869888bc86b1b8ab51b89a07b5
Author: Guillaume Bernard <associations guillaume-bernard fr>
Date:   Fri Feb 8 10:42:22 2019 +0100

    feat #85: use Damned Lies in Docker
    
    - Provide a Dockerfile to build an image that includes requirements.
    - Start Damned Lies using docker-compose

 Dockerfile           | 18 ++++++++++++++++++
 docker-compose.yml   | 17 +++++++++++++++++
 docker-entrypoint.sh | 24 ++++++++++++++++++++++++
 3 files changed, 59 insertions(+)
---
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 00000000..bfee8702
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,18 @@
+FROM python:slim
+MAINTAINER Guillaume Bernard <associations guillaume-bernard fr>
+
+ENV PYTHONUNBUFFERED 1
+ENV PYTHONDONTWRITEBYTECODE 1
+
+# Let this first for caching reasons
+RUN apt update && \
+    apt install -y gettext intltool gnome-doc-utils itstool libmariadbclient-dev libicu-dev build-essential
+
+# Implicitely creates /damnedlies directory
+WORKDIR /damnedlies
+
+COPY requirements.txt /damnedlies/requirements.txt
+RUN pip3 install -r requirements.txt
+
+COPY .  /damnedlies/
+ENTRYPOINT /damnedlies/docker-entrypoint.sh
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 00000000..b8d5bd92
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,17 @@
+version: "3"
+
+services:
+
+  damned-lies:
+    build: .
+    image: damned-lies
+    container_name: damned-lies
+    hostname: damned-lies
+    environment:
+      - DJANGO_ROOT_LOGIN=root
+      - DJANGO_ROOT_PASSWORD=root
+    ports:
+      - 8080:8080
+    volumes:
+      - .:/damnedlies
+    entrypoint: /damnedlies/docker-entrypoint.sh
diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh
new file mode 100755
index 00000000..9ad7102a
--- /dev/null
+++ b/docker-entrypoint.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+# Initialize SECRET_KEY for Django if none is already given
+local_settings="./damnedlies/local_settings.py"
+if ! grep 'SECRET_KEY' "${local_settings}" &> /dev/null ; then
+    echo "SECRET_KEY = 'supersecretkey'" >> "${local_settings}"
+fi
+
+# Prepare database migration
+python3 ./manage.py migrate
+
+# Create super user with root and root credentials
+python3 ./manage.py shell <<< "
+from django.contrib.auth.models import User
+
+if User.objects.filter(username='${DJANGO_ROOT_LOGIN}').count() == 0:
+    User.objects.create_superuser('${DJANGO_ROOT_LOGIN}', '', '${DJANGO_ROOT_PASSWORD}')
+"
+
+# Load sample data into database
+python3 ./manage.py loaddata sample_data
+
+# Run webserver
+python3 ./manage.py runserver 0.0.0.0:8080
\ No newline at end of file


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]