From 1c6395755a8d1cd861c235e516bda1e9ed9a9f46 Mon Sep 17 00:00:00 2001
From: Frank Sauerburger <frank@sauerburger.com>
Date: Sun, 28 Aug 2022 16:28:08 +0200
Subject: [PATCH] Dockerize app

---
 Dockerfile       | 14 ++++++++++++++
 Makefile         |  7 +++++++
 requirements.txt |  1 +
 3 files changed, 22 insertions(+)
 create mode 100644 Dockerfile
 create mode 100644 Makefile

diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..eec30bb
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,14 @@
+FROM python:3.10
+
+RUN useradd -m app
+WORKDIR /home/app
+COPY requirements.txt requirements.txt
+RUN pip install -r requirements.txt
+
+COPY app.py qgram.py /home/app/
+COPY examples/titles.json /home/app/examples/
+RUN chown -R root:app /home/app
+RUN chmod -R u=rX,g=rX,o=- /home/app
+USER app:app
+
+ENTRYPOINT ["gunicorn", "-w", "4", "-b", "0.0.0.0", "app:app"]
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..67cdbd7
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,7 @@
+TAG=0.1.0
+
+build:
+	DOCKER_DEFAULT_PLATFORM=linux/amd64 docker build -t gitlab.sauerburger.com:5049/frank/wakefield-movie-recommender:$(TAG) .
+
+push: build
+	DOCKER_DEFAULT_PLATFORM=linux/amd64 docker push gitlab.sauerburger.com:5049/frank/wakefield-movie-recommender:$(TAG)
diff --git a/requirements.txt b/requirements.txt
index 52b3b92..4861601 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1 +1,2 @@
 flask~=2.1.2
+gunicorn~=20.1.0
-- 
GitLab