| FROM python:3.11-slim |
|
|
| |
| RUN apt-get update -qq && apt-get install --no-install-recommends -y \ |
| build-essential \ |
| gcc \ |
| cmake \ |
| libcairo2-dev \ |
| libffi-dev \ |
| libpango1.0-dev \ |
| freeglut3-dev \ |
| ffmpeg \ |
| pkg-config \ |
| make \ |
| wget \ |
| ghostscript \ |
| fonts-noto \ |
| tesseract-ocr \ |
| tesseract-ocr-tam \ |
| fonts-liberation \ |
| curl \ |
| && apt-get clean \ |
| && rm -rf /var/lib/apt/lists/* |
|
|
| RUN fc-cache -fv |
|
|
| |
| ENV PATH=/usr/local/texlive/bin/armhf-linux:/usr/local/texlive/bin/aarch64-linux:/usr/local/texlive/bin/x86_64-linux:$PATH |
| COPY texlive-profile.txt /tmp/ |
| RUN wget -O /tmp/install-tl-unx.tar.gz http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz && \ |
| mkdir /tmp/install-tl && \ |
| tar -xzf /tmp/install-tl-unx.tar.gz -C /tmp/install-tl --strip-components=1 && \ |
| /tmp/install-tl/install-tl --profile=/tmp/texlive-profile.txt && \ |
| tlmgr install \ |
| amsmath babel-english cbfonts-fd cm-super count1to ctex doublestroke dvisvgm everysel \ |
| fontspec frcursive fundus-calligra gnu-freefont jknapltx latex-bin \ |
| mathastext microtype multitoc physics prelim2e preview ragged2e relsize rsfs \ |
| setspace standalone tipa wasy wasysym xcolor xetex xkeyval && \ |
| rm -rf /tmp/install-tl* |
|
|
| |
| ARG NB_USER=appuser |
| ARG NB_UID=1000 |
| ENV USER=${NB_USER} |
| ENV NB_UID=${NB_UID} |
| ENV HOME=/app |
|
|
| RUN adduser --disabled-password \ |
| --gecos "Default user" \ |
| --uid ${NB_UID} \ |
| ${NB_USER} |
|
|
| WORKDIR ${HOME} |
|
|
| |
| COPY requirements.txt . |
| RUN pip install --no-cache-dir -r requirements.txt |
|
|
| |
| COPY --chown=appuser:appuser . . |
|
|
| |
| RUN mkdir -p /app/media /app/temp && \ |
| chown -R ${NB_USER}:${NB_USER} /app && \ |
| chmod -R 777 /app/media /app/temp |
|
|
| USER ${NB_USER} |
|
|
| EXPOSE 7860 |
|
|
| CMD ["python", "app.py"] |