docker/server.dockerfile
changeset 142 640fb0f13022
equal deleted inserted replaced
141:26faef513d90 142:640fb0f13022
       
     1 # set base image (host OS)
       
     2 FROM docker.io/python:alpine as base
       
     3 
       
     4 ARG DEV=false
       
     5 ENV PATH="/code/.venv/bin:$PATH"
       
     6 WORKDIR /code
       
     7 
       
     8 FROM base as builder
       
     9 
       
    10 ENV POETRY_NO_INTERACTION=1 \
       
    11     POETRY_VIRTUALENVS_IN_PROJECT=1 \
       
    12     POETRY_VIRTUALENVS_CREATE=1 \
       
    13     POETRY_CACHE_DIR=/tmp/poetry_cache
       
    14 
       
    15 RUN \
       
    16   apk add --no-cache libmemcached zlib && \
       
    17   apk add --no-cache musl-dev build-base libmemcached-dev zlib-dev linux-headers
       
    18 
       
    19 
       
    20 # Install Poetry
       
    21 RUN pip install poetry
       
    22 
       
    23 # Install the app
       
    24 COPY src/pyproject.toml src/poetry.lock ./
       
    25 RUN if [ $DEV ]; then \
       
    26       poetry install --with dev --no-root && rm -rf $POETRY_CACHE_DIR; \
       
    27     else \
       
    28       poetry install --without dev --no-root && rm -rf $POETRY_CACHE_DIR; \
       
    29     fi
       
    30 
       
    31 FROM base as runtime
       
    32 
       
    33 RUN apk add --no-cache libmemcached zlib bash
       
    34 
       
    35 COPY --from=builder /code/.venv /code/.venv
       
    36 COPY src/catedit /code/catedit
       
    37 COPY docker/catedit.yml /code/
       
    38 COPY docker/config.py /code/
       
    39 ENV CATEDIT_SETTINGS=/code/config.py
       
    40   
       
    41 
       
    42 CMD ["uwsgi", "--yaml", "/code/catedit.yml"]