From e3db2ecd1e52b4993b91e1a1c3501c0fc775de1d Mon Sep 17 00:00:00 2001
From: Patrick Jentsch
Date: Thu, 5 Sep 2019 14:42:21 +0200
Subject: [PATCH] Load environment variables in container. So the python-dotenv
module is no longer needed!
---
Dockerfile | 38 +++++++++++++++++++++++++-------------
docker-entrypoint.sh | 13 +++++++++++++
flask-entrypoint.sh | 3 ---
opaque.py | 2 --
requirements.txt | 1 -
5 files changed, 38 insertions(+), 19 deletions(-)
create mode 100755 docker-entrypoint.sh
delete mode 100644 flask-entrypoint.sh
diff --git a/Dockerfile b/Dockerfile
index e6a7ea0b..e588a372 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,18 +1,30 @@
-# pull official base image
-FROM python:3.6.9
+FROM python:3.6-alpine
-# set environment varibles
-ENV PYTHONDONTWRITEBYTECODE 1
-ENV PYTHONUNBUFFERED 1
-# set work directory
-WORKDIR /opaque
+RUN apk add build-base
-# Copy the current directory contents into the container at /daemon
-COPY . /opaque
-# Install requirements
-RUN pip install --trusted-host pypi.python.org -r requirements.txt
+RUN adduser -D opaque
+USER opaque
-# set permissions for entrypoint
-RUN chmod a+x flask-entrypoint.sh
+
+WORKDIR /home/opaque
+
+
+COPY app app
+COPY migrations migrations
+COPY opaque.py config.py ./
+COPY requirements.txt requirements.txt
+
+
+RUN python -m venv venv && \
+ venv/bin/pip install -r requirements.txt
+
+
+COPY docker-entrypoint.sh /usr/local/bin/
+
+
+EXPOSE 5000
+
+
+ENTRYPOINT ["docker-entrypoint.sh"]
diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh
new file mode 100755
index 00000000..535d86a0
--- /dev/null
+++ b/docker-entrypoint.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+# If no argument is given, start Opaque
+if [ $# -eq 0 ]
+then
+ venv/bin/python opaque.py
+else
+ if [[ $1 == "--create-db" ]]
+ then
+ flask db init
+ flask db upgrade
+ fi
+fi
diff --git a/flask-entrypoint.sh b/flask-entrypoint.sh
deleted file mode 100644
index ed4b193f..00000000
--- a/flask-entrypoint.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash -x
-
-python opaque.py
diff --git a/opaque.py b/opaque.py
index 3f8483af..8d4b0101 100644
--- a/opaque.py
+++ b/opaque.py
@@ -1,7 +1,5 @@
import eventlet
eventlet.monkey_patch()
-from dotenv import load_dotenv
-load_dotenv()
from app import create_app, db, socketio
from app.models import Corpus, User, Role, Permission, Job
from flask_migrate import Migrate
diff --git a/requirements.txt b/requirements.txt
index 2592d001..19d3e6ed 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -8,5 +8,4 @@ Flask-SQLAlchemy
Flask-Table
Flask-WTF
jsonpatch
-python-dotenv
redis