muddasser commited on
Commit
991201b
·
verified ·
1 Parent(s): cdaa7f5

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +20 -37
Dockerfile CHANGED
@@ -1,74 +1,57 @@
1
  FROM python:3.10-slim
2
 
3
- # Run as root to avoid permission issues
4
- USER root
5
-
6
- # Install system dependencies
7
  RUN apt-get update && apt-get install -y \
8
- chromium \
9
- chromium-driver \
10
- fonts-liberation \
 
 
11
  libnss3 \
12
  libatk1.0-0 \
13
  libatk-bridge2.0-0 \
14
- libdrm2 \
15
  libxkbcommon0 \
16
  libxcomposite1 \
17
  libxdamage1 \
18
  libxrandr2 \
19
  libgbm1 \
20
  libasound2 \
21
- curl \
22
- net-tools \
23
- wget \
24
- unzip \
25
  && rm -rf /var/lib/apt/lists/*
26
 
27
  # Set working directory
28
  WORKDIR /app
29
 
30
- # Create cache and tmp directories with proper permissions
31
- RUN mkdir -p /app/cache/pip /app/tmp/.wdm && \
32
- chmod -R 777 /app/cache /app/tmp
33
 
34
- # Set pip cache and tmp directory
35
  ENV XDG_CACHE_HOME=/app/cache/pip
36
- # Disable pip cache to avoid permission issues
37
  ENV PIP_NO_CACHE_DIR=1
38
- ENV TMPDIR=/app/tmp
39
 
40
- # Copy requirements first to leverage Docker cache
41
  COPY requirements.txt .
42
 
43
- # Update pip and install dependencies
44
  RUN pip install --upgrade pip && \
45
  pip install -r requirements.txt && \
46
- pip install tokenizers==0.19.1
 
47
 
48
- # Verify transformers and tokenizers
49
  RUN python -c "import transformers; from transformers import pipeline; print('Transformers pipeline imported successfully, version:', transformers.__version__)" && \
50
  python -c "import tokenizers; print('Tokenizers imported successfully, version:', tokenizers.__version__)"
51
 
52
- # Verify ChromeDriver
53
- RUN chromedriver --version && chromium --version
54
-
55
- # Copy the rest of the application
56
  COPY . .
57
 
58
  # Set environment variables
59
- ENV CHROMEDRIVER_PATH=/usr/bin/chromedriver
60
- ENV CHROMIUM_PATH=/usr/bin/chromium
61
- ENV DISPLAY=:99
62
  ENV PYTHONUNBUFFERED=1
63
  ENV STREAMLIT_OPT_OUT_OF_USAGE_STATISTICS=true
64
  ENV HF_HOME=/app/cache
65
- ENV WDM_CACHE_DIR=/app/tmp/.wdm
66
-
67
- # Ensure ChromeDriver and Chromium are executable
68
- RUN chmod +x /usr/bin/chromedriver /usr/bin/chromium
69
-
70
- # Clear /app/tmp at container startup
71
- CMD ["sh", "-c", "rm -rf /app/tmp/* && streamlit run app.py --server.port=8501 --server.address=0.0.0.0 --server.fileWatcherType=none --server.headless=true"]
72
 
73
  # Expose Streamlit port
74
- EXPOSE 8501
 
 
 
 
1
  FROM python:3.10-slim
2
 
3
+ # Install system dependencies for Playwright
 
 
 
4
  RUN apt-get update && apt-get install -y \
5
+ curl \
6
+ net-tools \
7
+ wget \
8
+ unzip \
9
+ libglib2.0-0 \
10
  libnss3 \
11
  libatk1.0-0 \
12
  libatk-bridge2.0-0 \
 
13
  libxkbcommon0 \
14
  libxcomposite1 \
15
  libxdamage1 \
16
  libxrandr2 \
17
  libgbm1 \
18
  libasound2 \
 
 
 
 
19
  && rm -rf /var/lib/apt/lists/*
20
 
21
  # Set working directory
22
  WORKDIR /app
23
 
24
+ # Create cache directory
25
+ RUN mkdir -p /app/cache/pip && \
26
+ chmod -R 777 /app/cache
27
 
28
+ # Set pip cache directory
29
  ENV XDG_CACHE_HOME=/app/cache/pip
 
30
  ENV PIP_NO_CACHE_DIR=1
 
31
 
32
+ # Copy requirements
33
  COPY requirements.txt .
34
 
35
+ # Install dependencies
36
  RUN pip install --upgrade pip && \
37
  pip install -r requirements.txt && \
38
+ pip install tokenizers==0.19.1 && \
39
+ playwright install
40
 
41
+ # Verify transformers
42
  RUN python -c "import transformers; from transformers import pipeline; print('Transformers pipeline imported successfully, version:', transformers.__version__)" && \
43
  python -c "import tokenizers; print('Tokenizers imported successfully, version:', tokenizers.__version__)"
44
 
45
+ # Copy application
 
 
 
46
  COPY . .
47
 
48
  # Set environment variables
 
 
 
49
  ENV PYTHONUNBUFFERED=1
50
  ENV STREAMLIT_OPT_OUT_OF_USAGE_STATISTICS=true
51
  ENV HF_HOME=/app/cache
 
 
 
 
 
 
 
52
 
53
  # Expose Streamlit port
54
+ EXPOSE 8501
55
+
56
+ # Run Streamlit
57
+ CMD ["streamlit", "run", "app.py", "--server.port=8501", "--server.address=0.0.0.0", "--server.fileWatcherType=none", "--server.headless=true"]