| # Pull python 3.7 docker image | |
| FROM python:3.7 | |
| # Set environment variables | |
| ENV PYTHONDONTWRITEBYTECODE 1 | |
| ENV PYTHONUNBUFFERED 1 | |
| # Create necessary directories | |
| RUN mkdir -p /home/app/staticfiles/app/uploaded_videos/ | |
| RUN mkdir -p /home/app/staticfiles/app/uploaded_images/ | |
| WORKDIR /app | |
| COPY . /app | |
| # Install system dependencies for dlib | |
| RUN apt-get update && apt-get install -y \ | |
| build-essential \ | |
| cmake \ | |
| g++ \ | |
| wget \ | |
| unzip \ | |
| libopenblas-dev \ | |
| liblapack-dev \ | |
| libx11-dev && \ | |
| apt-get clean | |
| # Install Rust and Cargo | |
| RUN curl https://sh.rustup.rs -sSf | sh -s -- -y | |
| ENV PATH="/root/.cargo/bin:$PATH" | |
| # Install Python dependencies | |
| RUN pip install --upgrade pip | |
| RUN pip install opencv-python==4.2.0.32 | |
| RUN pip install protobuf | |
| # Install dlib from a precompiled wheel if available | |
| RUN pip install dlib-19.24.99-cp37-cp37m-linux_x86_64.whl | |
| # Install remaining Python packages | |
| RUN pip install altair asgiref astor attrs backcall base58 bleach blinker cachetools certifi chardet click colorama cycler decorator defusedxml Django docutils entrypoints enum-compat face-recognition face-recognition-models future google google-api-core google-api-python-client google-auth google-auth-httplib2 googleapis-common-protos httplib2 idna ipykernel ipython ipython-genutils ipywidgets jedi Jinja2 jmespath json5 jsonschema jupyter-client jupyter-core jupyterlab jupyterlab-server kiwisolver MarkupSafe matplotlib mistune nbconvert nbformat notebook numpy packaging pandas pandocfilters parso pathtools pickleshare Pillow prometheus-client prompt-toolkit pyasn1 pyasn1-modules pycodestyle pydeck Pygments pyparsing pyrsistent python-dateutil pytz pywinpty PyYAML pyzmq requests rsa s3transfer Send2Trash six soupsieve sqlparse terminado testpath toml toolz torch torchvision tornado traitlets tzlocal uritemplate urllib3 validators watchdog wcwidth webencodings widgetsnbextension | |
| RUN chmod +x /app/bin/gunicorn_start.sh | |
| # Copy application files | |
| RUN mkdir -p /app/staticfiles /app/uploaded_videos /app/uploaded_images | |
| RUN python manage.py collectstatic --noinput | |
| RUN pip install gunicorn | |
| # Expose volume and set entry point | |
| VOLUME /app/run/ | |
| ENTRYPOINT ["/app/bin/gunicorn_start.sh"] | |