File size: 2,305 Bytes
42f4c11
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# Dockerfile (VERSÃO FINAL CORRIGIDA)

# 1. COMEÇAR COM A BASE CORRETA: Uma imagem oficial da NVIDIA com CUDA 12.1.1 e as ferramentas de desenvolvimento (devel)
FROM nvidia/cuda:12.1.1-devel-ubuntu22.04

# 2. INSTALAR DEPENDÊNCIAS DO SISTEMA
# Precisamos de wget para baixar o miniconda e git para clonar o repositório.
# DEBIAN_FRONTEND=noninteractive evita que a instalação peça inputs.
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends \
    wget \
    git \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

# 3. INSTALAR O MINICONDA SOBRE A IMAGEM NVIDIA
# Baixamos o instalador, executamos em modo silencioso (-b) no diretório /opt/conda (-p)
# e depois limpamos o instalador.
RUN wget --quiet https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh && \
    /bin/bash ~/miniconda.sh -b -p /opt/conda && \
    rm ~/miniconda.sh

# 4. ADICIONAR CONDA AO PATH DO SISTEMA
# Isso garante que os comandos 'conda' e 'pip' usarão a instalação que acabamos de fazer.
ENV PATH /opt/conda/bin:$PATH

# 5. CRIAR O AMBIENTE CONDA A PARTIR DO NOSSO ARQUIVO
# Copiamos o environment.yml e deixamos o conda instalar as dependências principais.
COPY environment.yml .
RUN conda env create -f environment.yml

# 6. INSTALAR FLASH_ATTN DENTRO DO AMBIENTE
# Agora este comando vai funcionar, pois nvcc e CUDA_HOME estão presentes na imagem base.
# 'conda run -n seedvr ...' executa o comando dentro do nosso ambiente específico.
RUN conda run -n seedvr pip install "flash_attn==2.5.9.post1" --no-build-isolation

# 7. DEFINIR O AMBIENTE CONDA COMO PADRÃO PARA O RESTO DO DOCKERFILE
# Esta é a linha corrigida, em formato JSON válido e completo.
SHELL ["conda", "run", "-n", "seedvr", "/bin/bash", "-c"]

# 8. PREPARAR O APLICATIVO
WORKDIR /app
RUN git clone https://github.com/bytedance-seed/SeedVR.git
WORKDIR /app/SeedVR

# 9. BAIXAR O MODELO DURANTE A CONSTRUÇÃO
# O comando huggingface-cli já está disponível no ambiente conda.
RUN huggingface-cli download ByteDance-Seed/SeedVR2-3B --local-dir ckpts --local-dir-use-symlinks False

# 10. COPIAR O CÓDIGO DO NOSSO APP
COPY app.py .

# 11. DEFINIR O COMANDO DE EXECUÇÃO
# O comando 'python' já será o do ambiente 'seedvr'.
CMD ["python", "app.py"]