sreepathi-ravikumar commited on
Commit
5c752cb
·
verified ·
1 Parent(s): e7a3ce3

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +71 -0
Dockerfile ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.11-slim
2
+
3
+ # Install system dependencies for Manim
4
+ RUN apt-get update -qq && apt-get install --no-install-recommends -y \
5
+ build-essential \
6
+ gcc \
7
+ cmake \
8
+ libcairo2-dev \
9
+ libffi-dev \
10
+ libpango1.0-dev \
11
+ freeglut3-dev \
12
+ ffmpeg \
13
+ pkg-config \
14
+ make \
15
+ wget \
16
+ ghostscript \
17
+ fonts-noto \
18
+ tesseract-ocr \
19
+ tesseract-ocr-tam \
20
+ fonts-liberation \
21
+ curl \
22
+ && apt-get clean \
23
+ && rm -rf /var/lib/apt/lists/*
24
+
25
+ RUN fc-cache -fv
26
+
27
+ # Setup minimal texlive installation for mathematical rendering
28
+ ENV PATH=/usr/local/texlive/bin/armhf-linux:/usr/local/texlive/bin/aarch64-linux:/usr/local/texlive/bin/x86_64-linux:$PATH
29
+ COPY texlive-profile.txt /tmp/
30
+ RUN wget -O /tmp/install-tl-unx.tar.gz http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz && \
31
+ mkdir /tmp/install-tl && \
32
+ tar -xzf /tmp/install-tl-unx.tar.gz -C /tmp/install-tl --strip-components=1 && \
33
+ /tmp/install-tl/install-tl --profile=/tmp/texlive-profile.txt && \
34
+ tlmgr install \
35
+ amsmath babel-english cbfonts-fd cm-super count1to ctex doublestroke dvisvgm everysel \
36
+ fontspec frcursive fundus-calligra gnu-freefont jknapltx latex-bin \
37
+ mathastext microtype multitoc physics prelim2e preview ragged2e relsize rsfs \
38
+ setspace standalone tipa wasy wasysym xcolor xetex xkeyval && \
39
+ rm -rf /tmp/install-tl*
40
+
41
+ # Create app user
42
+ ARG NB_USER=appuser
43
+ ARG NB_UID=1000
44
+ ENV USER=${NB_USER}
45
+ ENV NB_UID=${NB_UID}
46
+ ENV HOME=/app
47
+
48
+ RUN adduser --disabled-password \
49
+ --gecos "Default user" \
50
+ --uid ${NB_UID} \
51
+ ${NB_USER}
52
+
53
+ WORKDIR ${HOME}
54
+
55
+ # Install Python dependencies
56
+ COPY requirements.txt .
57
+ RUN pip install --no-cache-dir -r requirements.txt
58
+
59
+ # Copy application files
60
+ COPY --chown=appuser:appuser . .
61
+
62
+ # Create output directory
63
+ RUN mkdir -p /app/media /app/temp && \
64
+ chown -R ${NB_USER}:${NB_USER} /app && \
65
+ chmod -R 777 /app/media /app/temp
66
+
67
+ USER ${NB_USER}
68
+
69
+ EXPOSE 7860
70
+
71
+ CMD ["python", "app.py"]