docker/server.dockerfile
author ymh <ymh.work@gmail.com>
Wed, 14 Aug 2024 22:08:14 +0200
changeset 142 640fb0f13022
permissions -rw-r--r--
server and docker migration

# 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"]