--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/docker/server.dockerfile Wed Aug 14 22:08:14 2024 +0200
@@ -0,0 +1,42 @@
+# set base image (host OS)
+FROM docker.io/python:alpine as base
+
+ARG DEV=false
+ENV PATH="/code/.venv/bin:$PATH"
+WORKDIR /code
+
+FROM base as builder
+
+ENV POETRY_NO_INTERACTION=1 \
+ POETRY_VIRTUALENVS_IN_PROJECT=1 \
+ POETRY_VIRTUALENVS_CREATE=1 \
+ POETRY_CACHE_DIR=/tmp/poetry_cache
+
+RUN \
+ apk add --no-cache libmemcached zlib && \
+ apk add --no-cache musl-dev build-base libmemcached-dev zlib-dev linux-headers
+
+
+# Install Poetry
+RUN pip install poetry
+
+# Install the app
+COPY src/pyproject.toml src/poetry.lock ./
+RUN if [ $DEV ]; then \
+ poetry install --with dev --no-root && rm -rf $POETRY_CACHE_DIR; \
+ else \
+ poetry install --without dev --no-root && rm -rf $POETRY_CACHE_DIR; \
+ fi
+
+FROM base as runtime
+
+RUN apk add --no-cache libmemcached zlib bash
+
+COPY --from=builder /code/.venv /code/.venv
+COPY src/catedit /code/catedit
+COPY docker/catedit.yml /code/
+COPY docker/config.py /code/
+ENV CATEDIT_SETTINGS=/code/config.py
+
+
+CMD ["uwsgi", "--yaml", "/code/catedit.yml"]
\ No newline at end of file