| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- FROM nvcr.io/nvidia/pytorch:24.02-py3
- # Install system dependencies
- ENV DEBIAN_FRONTEND=noninteractive
- RUN apt-get update && apt-get install -y git curl build-essential ffmpeg libsm6 libxext6 libjpeg-dev \
- zlib1g-dev aria2 zsh openssh-server sudo python3.10-venv protobuf-compiler && \
- apt-get clean && rm -rf /var/lib/apt/lists/*
- # Install zsh
- RUN sh -c "$(curl https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" "" --unattended
- # Set zsh as default shell
- RUN chsh -s /usr/bin/zsh
- ENV SHELL=/usr/bin/zsh
- # Setup torchaudio
- RUN git clone https://github.com/pytorch/audio --recursive --depth 1 && \
- cd audio && pip install -v --no-use-pep517 . && \
- cd .. && rm -rf audio && python -c "import torchaudio; print(torchaudio.__version__)"
- # Setup flash-attn
- RUN pip3 install --upgrade pip && \
- pip3 install ninja packaging && \
- FLASH_ATTENTION_FORCE_BUILD=TRUE pip3 install git+https://github.com/Dao-AILab/flash-attention.git
- # Test flash-attn
- RUN python3 -c "from flash_attn import flash_attn_varlen_func"
- # Project Env
- WORKDIR /exp
- COPY pyproject.toml ./
- COPY data_server ./data_server
- COPY fish_speech ./fish_speech
- # Setup rust-data-server
- RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y && \
- cd data_server && $HOME/.cargo/bin/cargo build --release && cp target/release/data_server /usr/local/bin/ && \
- cd .. && rm -rf data_server && data_server --help
- RUN pip3 install -e . && pip uninstall -y fish-speech && rm -rf fish_speech
- CMD /bin/zsh
|