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