Docker image for creating web applications in Python using Flask, uWGSI, Nginx and miniconda.
Miniconda is included for package and environment management intended for data scientists and machine learning engineers.
Currently supports Python 3.6, building on top of tiangolo/uwsgi-nginx-flask.
FROM cameroncruz/flask-nginx-uwsgi-miniconda:python3.6Creating a conda env and installing dependencies (you must install Flask and uWSGI to your env as well):
RUN conda create --name myenv python=3.6
RUN /bin/bash -c ". activate myenv && \
conda config --add channels conda-forge && \
conda install -y \
scikit-learn \
numpy \
scipy \
flask \
uwsgi"You must create a custom supervisor config, replacing "myenv" with the name of your conda environment:
# suporvisord.conf
[program:uwsgi]
environment=PATH='/opt/conda/envs/myenv/bin'
command=/opt/conda/envs/myenv/bin/uwsgi --ini /etc/uwsgi/uwsgi.ini --die-on-term --need-appCopy custom supervisor config:
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.confFinally copy application files:
# NOTE: The file that launches your Flash app needs to be copied to /app/main.py
COPY server/server.py /app/main.pyBuilding and running the container:
docker build -t my_image .
docker run -p 80:80 -t my_imageRefer to the example in this repo for further clarification.