Spaces:
Runtime error
Runtime error
# Usar a imagem base do Python | |
FROM python:3.11.9-slim-bullseye AS builder | |
# Definir o diretório de trabalho | |
WORKDIR /app | |
# Variável de ambiente para evitar prompts interativos | |
ARG DEBIAN_FRONTEND=noninteractive | |
# Atualizar pacotes e instalar dependências essenciais | |
RUN apt-get update -qq \ | |
&& apt-get -qqq install --no-install-recommends -y pkg-config gcc g++ \ | |
&& apt-get upgrade --assume-yes \ | |
&& apt-get clean \ | |
&& rm -rf /var/lib/apt | |
# Criar um ambiente virtual | |
RUN python -m venv venv \ | |
&& ./venv/bin/pip install --no-cache-dir --upgrade pip | |
# Copiar todos os arquivos do diretório local para o contêiner | |
COPY . . | |
# Instalar dependências adicionais | |
RUN ./venv/bin/pip install Babel==2.12.1 \ | |
&& ./venv/bin/python scripts/compile_locales.py \ | |
&& ./venv/bin/pip install torch==2.0.1 --extra-index-url https://download.pytorch.org/whl/cpu \ | |
&& ./venv/bin/pip install "numpy<2" \ | |
&& ./venv/bin/pip install . \ | |
&& ./venv/bin/pip cache purge | |
# Criar usuário e grupo com permissões | |
FROM python:3.11.9-slim-bullseye | |
ARG with_models=false | |
ARG models="" | |
# Criar grupo e usuário | |
RUN addgroup --system --gid 1032 libretranslate \ | |
&& adduser --system --uid 1032 libretranslate \ | |
&& mkdir -p /home/libretranslate/.local \ | |
&& chown -R libretranslate:libretranslate /home/libretranslate/.local | |
# Definir o usuário que o contêiner irá usar | |
USER libretranslate | |
# Copiar os arquivos do estágio de construção para a imagem final | |
COPY --from=builder --chown=1032:1032 /app /app | |
# Definir o diretório de trabalho | |
WORKDIR /app | |
# Copiar o gerenciador de comandos | |
COPY --from=builder --chown=1032:1032 /app/venv/bin/ltmanage /usr/bin/ | |
# Instalar modelos se necessário | |
RUN if [ "$with_models" = "true" ]; then \ | |
if [ ! -z "$models" ]; then \ | |
./venv/bin/python scripts/install_models.py --load_only_lang_codes "$models"; \ | |
else \ | |
./venv/bin/python scripts/install_models.py; \ | |
fi; \ | |
fi | |
# Expor a porta 5000 | |
EXPOSE 5000 | |
# Definir o ponto de entrada do contêiner | |
ENTRYPOINT ["./venv/bin/libretranslate", "--host", "*"] | |