60 lines
2.0 KiB
Plaintext
60 lines
2.0 KiB
Plaintext
FROM nvcr.io/nvidia/pytorch:26.01-py3
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
# 1. Dépendances système et audio
|
|
RUN apt-get update && apt-get install -y \
|
|
ffmpeg pkg-config libavcodec-dev libavformat-dev \
|
|
libavutil-dev libswscale-dev libavdevice-dev libavfilter-dev \
|
|
libsndfile1 sox zstd screen nano git wget curl \
|
|
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
|
|
# 2. Installation d'Ollama
|
|
RUN curl -fsSL https://ollama.ai/install.sh | sh
|
|
|
|
# 3. Installation des dépendances Python (Validées par nos tests manuels)
|
|
# On installe les briques manquantes AVANT Audiocraft
|
|
RUN pip install --no-cache-dir \
|
|
open-webui \
|
|
gradio \
|
|
scipy \
|
|
soundfile \
|
|
julius \
|
|
omegaconf \
|
|
hydra-core \
|
|
hydra-colorlog \
|
|
flashy \
|
|
num2words \
|
|
torchmetrics \
|
|
encodec \
|
|
xformers \
|
|
einops \
|
|
spacy==3.7.6 \
|
|
numpy==1.26.4
|
|
|
|
# 4. Installation d'Audiocraft (Isolée pour ne pas casser PyTorch)
|
|
RUN pip install --no-cache-dir --no-deps git+https://github.com/facebookresearch/audiocraft.git
|
|
|
|
# 5. Installation ComfyUI
|
|
WORKDIR /root
|
|
RUN git clone https://github.com/comfyanonymous/ComfyUI.git && \
|
|
cd ComfyUI && \
|
|
pip install --no-cache-dir -r requirements.txt
|
|
|
|
# 6. Intégration de ton script de serveur Audio
|
|
RUN mkdir -p /root/audiocraft-api
|
|
COPY server.py /root/audiocraft-api/server.py
|
|
|
|
# 7. Script d'auto-lancement (Auto-Boot) ultra-robuste
|
|
RUN echo '#!/bin/bash\n\
|
|
ollama serve > /root/ollama.log 2>&1 & \n\
|
|
open-webui serve --port 3000 > /root/webui.log 2>&1 & \n\
|
|
python3 /root/ComfyUI/main.py --listen 0.0.0.0 --port 8188 > /root/comfy.log 2>&1 & \n\
|
|
python3 /root/audiocraft-api/server.py > /root/audio.log 2>&1 & \n\
|
|
echo "--- TOUS LES SERVICES SONT EN COURS DE LANCEMENT ---"\n\
|
|
wait' > /start.sh && chmod +x /start.sh
|
|
|
|
# 8. Configuration finale
|
|
EXPOSE 3000 7860 8188 11434
|
|
WORKDIR /root
|
|
# On force l'utilisation de bash pour éviter les problèmes de droits
|
|
ENTRYPOINT ["/bin/bash", "/start.sh"] |