FROM node:alpine as frontend
WORKDIR /usr/src/app/frontend/
COPY frontend .
RUN yarn install \
&& yarn build
FROM python:3-alpine as requirements
WORKDIR /usr/src/app/
RUN apk add --no-cache git \
&& pip install --no-cache-dir pipenv
COPY Pipfile .
COPY Pipfile.lock .
RUN pipenv lock -r > requirements.txt
FROM python:3-alpine
WORKDIR /usr/src/app
COPY --from=requirements /usr/src/app/requirements.txt .
RUN apk add --no-cache --virtual .deps \
build-base \
libjpeg-turbo-dev \
libwebp-dev \
zlib-dev \
&& pip install -r requirements.txt \
&& apk del .deps \
&& apk add --no-cache \
libjpeg-turbo \
libwebp
COPY --from=frontend /usr/src/app/frontend/dist/ frontend/dist
COPY *.py ./
USER 1000
VOLUME ["/usr/src/app/cache/"]
ENTRYPOINT ["gunicorn", "mangareader:app", "--bind", "0.0.0.0:8000", "--chdir", "/library"]
EXPOSE 8000