mike23415 commited on
Commit
fadea1a
·
verified ·
1 Parent(s): 07be8b3

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +21 -13
Dockerfile CHANGED
@@ -1,7 +1,6 @@
 
1
  FROM python:3.9-slim
2
 
3
- RUN accelerate config default
4
-
5
  # System dependencies
6
  RUN apt-get update && \
7
  apt-get install -y \
@@ -10,31 +9,40 @@ RUN apt-get update && \
10
  wkhtmltopdf \
11
  xvfb \
12
  fonts-liberation \
 
13
  && rm -rf /var/lib/apt/lists/*
14
 
15
- # Create app user and cache directory
16
  RUN useradd -m appuser && \
17
  mkdir -p /app/.cache && \
18
- chown -R appuser:appuser /app/.cache
19
 
20
- WORKDIR /app
21
-
22
- # Set environment variables
23
  ENV HF_HOME=/app/.cache \
24
  XDG_CACHE_HOME=/app/.cache \
25
  PYTHONUNBUFFERED=1 \
26
  PYTHONFAULTHANDLER=1
27
 
28
- # Install requirements first for caching
 
 
29
  COPY requirements.txt .
30
  RUN pip install --no-cache-dir -r requirements.txt
31
 
32
- # Application code
 
 
 
 
 
 
 
 
 
33
  COPY --chown=appuser:appuser . .
34
 
35
- # Run as non-root user
36
  USER appuser
37
 
38
- # Startup script with health check
39
- CMD ["sh", "-c", \
40
- "gunicorn --bind 0.0.0.0:5000 --timeout 600 --preload app:app"]
 
1
+ # Dockerfile
2
  FROM python:3.9-slim
3
 
 
 
4
  # System dependencies
5
  RUN apt-get update && \
6
  apt-get install -y \
 
9
  wkhtmltopdf \
10
  xvfb \
11
  fonts-liberation \
12
+ fonts-dejavu \
13
  && rm -rf /var/lib/apt/lists/*
14
 
15
+ # Create non-root user and cache directory
16
  RUN useradd -m appuser && \
17
  mkdir -p /app/.cache && \
18
+ chown -R appuser:appuser /app
19
 
20
+ # Environment variables
 
 
21
  ENV HF_HOME=/app/.cache \
22
  XDG_CACHE_HOME=/app/.cache \
23
  PYTHONUNBUFFERED=1 \
24
  PYTHONFAULTHANDLER=1
25
 
26
+ WORKDIR /app
27
+
28
+ # Install Python dependencies
29
  COPY requirements.txt .
30
  RUN pip install --no-cache-dir -r requirements.txt
31
 
32
+ # Configure accelerate for optimal performance
33
+ RUN python -c "from accelerate.utils import write_basic_config; write_basic_config(mixed_precision='fp16')" && \
34
+ chown -R appuser:appuser /app/.cache
35
+
36
+ # Pre-download model (GPT-2 Medium)
37
+ RUN python -c "from transformers import GPT2LMHeadModel; \
38
+ GPT2LMHeadModel.from_pretrained('gpt2-medium', use_safetensors=True)" && \
39
+ chown -R appuser:appuser /app/.cache
40
+
41
+ # Copy application code
42
  COPY --chown=appuser:appuser . .
43
 
44
+ # Switch to non-root user
45
  USER appuser
46
 
47
+ # Runtime configuration
48
+ CMD ["gunicorn", "--bind", "0.0.0.0:5000", "--timeout", "600", "--preload", "app:app"]