| # 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"] |