FROM node:carbon as node

WORKDIR /app/
COPY frontend/package.json .
COPY frontend/yarn.lock .
RUN yarn

# CACHED
COPY frontend/ .
RUN yarn build

FROM python:3.6-alpine

WORKDIR /code

# This set is needed otherwise the postgres driver wont work
RUN apk update \
  && apk add --virtual build-deps gcc python3-dev musl-dev curl \
  && apk add --no-cache postgresql-dev

RUN apk add --no-cache git

COPY requirements.txt .
RUN pip install -r requirements.txt && rm -rf /root/.cache

# CACHED
COPY . .
COPY --from=node /app/dist /code/frontend/dist
COPY --from=node /app/dist/index.html /code/core/templates/index.html

ENV PYTHONUNBUFFERED 1
RUN python util/format_index.py
RUN python manage.py collectstatic --noinput
RUN apk del build-deps

CMD ["./deploy.sh"]