# Use an official Python runtime as a base image FROM ubuntu:18.04 FROM python:3.9-slim # Expose the port to run it ENV LISTEN_PORT=5000 EXPOSE 5000 LABEL Maintainer="arts-of-coding" USER root WORKDIR /dashboard # fix locales RUN apt-get update \ && apt-get install -y --no-install-recommends locales \ && rm -rf /var/lib/apt/lists/* \ && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 ENV LANG en_US.utf8 # install blobfuse RUN apt-get update \ && apt-get install -y wget apt-utils \ && wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb \ && dpkg -i packages-microsoft-prod.deb \ && apt-get remove -y wget \ && apt-get update \ && apt-get install -y --no-install-recommends fuse blobfuse blobfuse2 libcurl3-gnutls libgnutls30 sudo \ && rm -rf /var/lib/apt/lists/* COPY mount-blobfuse.sh / RUN chmod +x /mount-blobfuse.sh #COPY --from=compiler /opt/venv/bin/activate /usr/local/bin/activate_venv #ADD /data/ /app/data/ WORKDIR /dashboard WORKDIR / RUN chmod 777 /dashboard WORKDIR /dashboard # Preset the volume change this to the actual azure folder #VOLUME /dash_plotly_QC_scRNA/./data COPY ./requirements.txt requirements.txt RUN pip install --no-cache-dir --upgrade -r requirements.txt #COPY . /app COPY ./mount-blobfuse.sh mount-blobfuse.sh #COPY ./dash_plotly_QC_scRNA.py dash_plotly_QC_scRNA.py #COPY ./main.py main.py COPY ./app.py app.py #RUN mkdir /azure # Only when not using azure COPY /data/ ./data/ COPY /pages/ ./pages/ #USER testuser #RUN chown -R testuser /app/azure #RUN chmod u+rx /mount-blobfuse.sh # Only when using azure #ENTRYPOINT ["/bin/bash", "-c", "/mount-blobfuse.sh; exec $SHELL"] #; exec $SHELL" # How the docker app will run CMD ["python3","app.py"] #CMD ["gunicorn", "app:app", "-b", "0.0.0.0:5000"] #, "--host", "0.0.0.0", "--port", "5000" #CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "5000"] #-w 3 -k uvicorn.workers.UvicornWorker