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