NitinBot001 commited on
Commit
3c843c7
·
verified ·
1 Parent(s): 0959655

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +32 -8
Dockerfile CHANGED
@@ -1,21 +1,45 @@
1
  FROM python:3.11.11-slim-bullseye
2
 
3
- # Install dependencies
 
 
 
4
  RUN apt-get update && apt-get install -y --no-install-recommends \
5
- build-essential pkg-config \
 
6
  && rm -rf /var/lib/apt/lists/*
7
 
8
  # Create non-root user
9
- RUN useradd -m -u 1000 libretranslate
 
 
 
10
  USER libretranslate
11
  WORKDIR /home/libretranslate
12
 
13
- # Install LibreTranslate
14
- RUN pip install --user --no-cache-dir libretranslate
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
 
16
- ENV PATH="/home/libretranslate/.local/bin:$PATH"
 
 
 
17
 
18
  EXPOSE 7860
19
 
20
- # Run LibreTranslate directly (it has built-in production server)
21
- CMD ["libretranslate", "--port", "7860"]
 
1
  FROM python:3.11.11-slim-bullseye
2
 
3
+ ARG with_models=false
4
+ ARG models=""
5
+
6
+ # Install system dependencies
7
  RUN apt-get update && apt-get install -y --no-install-recommends \
8
+ build-essential \
9
+ pkg-config \
10
  && rm -rf /var/lib/apt/lists/*
11
 
12
  # Create non-root user
13
+ RUN useradd -m -u 1000 libretranslate && \
14
+ mkdir -p /home/libretranslate/.local && \
15
+ chown -R libretranslate:libretranslate /home/libretranslate
16
+
17
  USER libretranslate
18
  WORKDIR /home/libretranslate
19
 
20
+ # Create virtual environment and install packages
21
+ RUN python -m venv venv
22
+ ENV PATH="/home/libretranslate/venv/bin:$PATH"
23
+
24
+ # Install LibreTranslate and Gunicorn
25
+ RUN pip install --no-cache-dir --upgrade pip && \
26
+ pip install --no-cache-dir libretranslate gunicorn
27
+
28
+ # Download models if specified
29
+ RUN if [ "$with_models" = "true" ]; then \
30
+ if [ ! -z "$models" ]; then \
31
+ python -c "from argostranslate import package; from libretranslate import get_available_packages; [package.install_from_path(p) for p in get_available_packages() if any(lang in p for lang in '${models}'.split(','))]"; \
32
+ else \
33
+ libretranslate --update-models; \
34
+ fi \
35
+ fi
36
 
37
+ # Create simple WSGI file
38
+ RUN echo 'from libretranslate.app import create_app\n\
39
+ \n\
40
+ app = create_app()' > wsgi.py
41
 
42
  EXPOSE 7860
43
 
44
+ # Run with gunicorn
45
+ CMD ["gunicorn", "--bind", "0.0.0.0:7860", "--workers", "2", "--timeout", "300", "wsgi:app"]