FROM python:3.7-slim-buster

ENV PYTHONUNBUFFERED 1

RUN mkdir /code

RUN addgroup --system --gid 1001 non-root && adduser --system non-root --gid 1001 --uid 1001 && chown -R non-root:non-root /code

RUN apt-get update \
    && apt-get install -y gcc \
    && pip install --no-cache-dir Django pywatchman\
    && apt-get purge -y gcc \
    && apt-get autoremove -y \
    && apt-get clean 

# Install watchman
RUN apt-get install -y wget unzip \
    && wget https://github.com/facebook/watchman/releases/download/v2020.08.17.00/watchman-v2020.08.17.00-linux.zip \
    && unzip watchman-*-linux.zip \
    && mkdir -p /usr/local/{bin,lib} /usr/local/var/run/watchman \
    && cp watchman-*-linux/bin/* /usr/local/bin \
    && cp watchman-*-linux/lib/* /usr/local/lib \
    && chmod 755 /usr/local/bin/watchman \
    && chmod 2777 /usr/local/var/run/watchman \
    && rm -rf watchman-*-linux watchman-*-linux.zip \
    && apt-get purge -y wget unzip \
    && apt-get autoremove -y \
    && apt-get clean

USER non-root

WORKDIR /code

RUN django-admin startproject debug_watchman

WORKDIR /code/debug_watchman

RUN echo "import os" >> debug_watchman/settings.py
RUN echo "LOGGING = {'version': 1, 'disable_existing_loggers': False, 'handlers': {'console': {'class': 'logging.StreamHandler'}}, 'loggers': {'django': {'handlers': ['console'], 'level': 'DEBUG'}}} if os.environ.get('LOG', None) else {}" >> debug_watchman/settings.py

CMD ["python", "manage.py","runserver", "0.0.0.0:8000"]
