From 7eba99b1e0202afa746aacd52325dfe36182b774 Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Wed, 18 Dec 2024 22:21:59 +0100
Subject: [PATCH] add Dockerfiles

---
 Dockerfile_api    | 30 ++++++++++++++++++++++++++++++
 Dockerfile_client | 29 +++++++++++++++++++++++++++++
 2 files changed, 59 insertions(+)
 create mode 100644 Dockerfile_api
 create mode 100644 Dockerfile_client

diff --git a/Dockerfile_api b/Dockerfile_api
new file mode 100644
index 0000000..76c43d9
--- /dev/null
+++ b/Dockerfile_api
@@ -0,0 +1,30 @@
+FROM python:3.12-alpine AS poetry
+
+RUN apk update && apk upgrade && \
+    apk add curl gcc python3-dev libc-dev build-base linux-headers postgresql-dev && \
+    rm -rf /var/cache/apk
+RUN curl https://install.python-poetry.org | python -
+
+COPY api/pyproject.toml /opt/RoadmapApi/pyproject.toml
+COPY api/poetry.lock /opt/RoadmapApi/poetry.lock
+COPY api/ /opt/RoadmapApi/src
+
+WORKDIR /opt/RoadmapApi
+RUN /root/.local/bin/poetry install --without dev --no-root
+RUN ln -s $($HOME/.local/share/pypoetry/venv/bin/poetry env info -p) /opt/RoadmapApi/venv
+
+FROM python:3.12-alpine
+
+RUN apk update && apk upgrade && \
+    apk add postgresql-libs && \
+    rm -rf /var/cache/apk
+
+COPY api/ /opt/RoadmapApi/src
+COPY --from=poetry /opt/RoadmapApi/venv /opt/RoadmapApi/venv
+
+RUN adduser -D roadmapapi && chown -R roadmapapi:roadmapapi /opt/RoadmapApi
+USER roadmapapi
+
+WORKDIR /opt/RoadmapApi/src
+EXPOSE 8080
+CMD [ "/opt/RoadmapApi/venv/bin/python", "/opt/RoadmapApi/src/RoadmapAPIServer.py"]
diff --git a/Dockerfile_client b/Dockerfile_client
new file mode 100644
index 0000000..7a220f5
--- /dev/null
+++ b/Dockerfile_client
@@ -0,0 +1,29 @@
+FROM python:3.12-alpine AS poetry
+
+RUN apk update && apk upgrade && \
+    apk add curl gcc python3-dev libc-dev build-base linux-headers && \
+    rm -rf /var/cache/apk
+RUN curl https://install.python-poetry.org | python -
+
+COPY client/pyproject.toml /opt/RoadmapClient/pyproject.toml
+COPY client/poetry.lock /opt/RoadmapClient/poetry.lock
+COPY client/ /opt/RoadmapClient/src
+
+WORKDIR /opt/RoadmapClient
+RUN /root/.local/bin/poetry install --without dev --no-root
+RUN ln -s $($HOME/.local/share/pypoetry/venv/bin/poetry env info -p) /opt/RoadmapClient/venv
+
+FROM python:3.12-alpine
+
+RUN apk update && apk upgrade && \
+    rm -rf /var/cache/apk
+
+COPY client/ /opt/RoadmapClient/src
+COPY --from=poetry /opt/RoadmapClient/venv /opt/RoadmapClient/venv
+
+RUN adduser -D roadmapclient && chown -R roadmapclient:roadmapclient /opt/RoadmapClient
+USER roadmapclient
+
+WORKDIR /opt/RoadmapClient/src
+EXPOSE 8080
+CMD [ "/opt/RoadmapClient/venv/bin/python", "/opt/RoadmapClient/src/RoadmapClient.py"]
-- 
GitLab