# arxiv/docs
#
# This image serves up the arXiv Labs site
FROM arxiv/base-with-git:0.14.3

WORKDIR /opt/arxiv/

RUN pip install -U pip pipenv && \
    pipenv install uwsgi arxiv-marxdown==0.2.4rc7  && \
    rm -rf ~/.cache/pip

EXPOSE 8000

ARG NOCACHE=1
ARG VERSION
ARG BUILD_TIME

ENV VERSION=$VERSION \
    BUILD_TIME=$BUILD_TIME \
    LOGLEVEL=40 \
    PATH="/opt/arxiv:${PATH}" \
    LC_ALL=en_US.utf-8 \
    LANG=en_US.utf-8 \
    UWSGI_PROCESSES=4

# Add the /labs site.
ADD ./deploy/labs /opt/arxiv/labs/
COPY ./labs /opt/arxiv/labs/source/
COPY ./.git /opt/arxiv/labs/source/.git/

# Add the uwsgi config, which mounts each of the sites above.
COPY ./deploy/uwsgi-labs.ini /opt/arxiv/uwsgi.ini

# Build the labs site.
#
# These are grouped together in a single RUN to cut down on layers.
RUN ls -la /opt/arxiv/labs/source && \
    pipenv run python -m arxiv.marxdown.build \
     --build-path=/opt/arxiv/labs/build \
     --instance-path=/opt/arxiv/labs/instance

ENTRYPOINT ["pipenv", "run"]
CMD ["uwsgi", "--ini", "/opt/arxiv/uwsgi.ini"]
