RaiSantos commited on
Commit
911344d
·
verified ·
1 Parent(s): 8e87e4b

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +49 -15
Dockerfile CHANGED
@@ -1,35 +1,69 @@
 
1
  FROM python:3.11.9-slim-bullseye AS builder
2
 
 
3
  WORKDIR /app
4
 
 
5
  ARG DEBIAN_FRONTEND=noninteractive
 
 
6
  RUN apt-get update -qq \
7
- && apt-get -qqq install --no-install-recommends -y pkg-config gcc g++ \
8
- && apt-get upgrade --assume-yes \
9
- && apt-get clean \
10
- && rm -rf /var/lib/apt
11
 
12
- RUN python -mvenv venv && ./venv/bin/pip install --no-cache-dir --upgrade pip
 
 
13
 
 
14
  COPY . .
15
 
16
- # Install package from source code, compile translations
17
- RUN ./venv/bin/pip install Babel==2.12.1 && ./venv/bin/python scripts/compile_locales.py \
18
- && ./venv/bin/pip install torch==2.0.1 --extra-index-url https://download.pytorch.org/whl/cpu \
19
- && ./venv/bin/pip install "numpy<2" \
20
- && ./venv/bin/pip install . \
21
- && ./venv/bin/pip cache purge
 
22
 
 
23
  FROM python:3.11.9-slim-bullseye
24
 
25
  ARG with_models=false
26
  ARG models=""
27
 
28
- RUN addgroup --system --gid 1032 libretranslate && adduser --system --uid 1032 libretranslate && mkdir -p /home/libretranslate/.local && chown -R libretranslate:libretranslate /home/libretranslate/.local
 
 
 
 
 
 
29
  USER libretranslate
30
 
31
- COPY --from=builder --chown=libretranslate:libretranslate /app /app
 
 
 
32
  WORKDIR /app
33
 
34
- # Aplicar permissões apenas na pasta /app
35
- RUN chmod -R 777 /app && chown -R libretranslate:libretranslate /app
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Usar a imagem base do Python
2
  FROM python:3.11.9-slim-bullseye AS builder
3
 
4
+ # Definir o diretório de trabalho
5
  WORKDIR /app
6
 
7
+ # Variável de ambiente para evitar prompts interativos
8
  ARG DEBIAN_FRONTEND=noninteractive
9
+
10
+ # Atualizar pacotes e instalar dependências essenciais
11
  RUN apt-get update -qq \
12
+ && apt-get -qqq install --no-install-recommends -y pkg-config gcc g++ \
13
+ && apt-get upgrade --assume-yes \
14
+ && apt-get clean \
15
+ && rm -rf /var/lib/apt
16
 
17
+ # Criar um ambiente virtual
18
+ RUN python -m venv venv \
19
+ && ./venv/bin/pip install --no-cache-dir --upgrade pip
20
 
21
+ # Copiar todos os arquivos do diretório local para o contêiner
22
  COPY . .
23
 
24
+ # Instalar dependências adicionais
25
+ RUN ./venv/bin/pip install Babel==2.12.1 \
26
+ && ./venv/bin/python scripts/compile_locales.py \
27
+ && ./venv/bin/pip install torch==2.0.1 --extra-index-url https://download.pytorch.org/whl/cpu \
28
+ && ./venv/bin/pip install "numpy<2" \
29
+ && ./venv/bin/pip install . \
30
+ && ./venv/bin/pip cache purge
31
 
32
+ # Criar usuário e grupo com permissões
33
  FROM python:3.11.9-slim-bullseye
34
 
35
  ARG with_models=false
36
  ARG models=""
37
 
38
+ # Criar grupo e usuário
39
+ RUN addgroup --system --gid 1032 libretranslate \
40
+ && adduser --system --uid 1032 libretranslate \
41
+ && mkdir -p /home/libretranslate/.local \
42
+ && chown -R libretranslate:libretranslate /home/libretranslate/.local
43
+
44
+ # Definir o usuário que o contêiner irá usar
45
  USER libretranslate
46
 
47
+ # Copiar os arquivos do estágio de construção para a imagem final
48
+ COPY --from=builder --chown=1032:1032 /app /app
49
+
50
+ # Definir o diretório de trabalho
51
  WORKDIR /app
52
 
53
+ # Copiar o gerenciador de comandos
54
+ COPY --from=builder --chown=1032:1032 /app/venv/bin/ltmanage /usr/bin/
55
+
56
+ # Instalar modelos se necessário
57
+ RUN if [ "$with_models" = "true" ]; then \
58
+ if [ ! -z "$models" ]; then \
59
+ ./venv/bin/python scripts/install_models.py --load_only_lang_codes "$models"; \
60
+ else \
61
+ ./venv/bin/python scripts/install_models.py; \
62
+ fi; \
63
+ fi
64
+
65
+ # Expor a porta 5000
66
+ EXPOSE 5000
67
+
68
+ # Definir o ponto de entrada do contêiner
69
+ ENTRYPOINT ["./venv/bin/libretranslate", "--host", "*"]