llama / Dockerfile
yumonji
add curl
9d334c0
FROM nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04
# 環境変数 (オプション、ビルド設定など)
ENV DEBIAN_FRONTEND=noninteractive
ENV LLAMA_CUBLAS=1
# 必要なパッケージのインストール
RUN apt-get update && apt-get install -y \
git \
cmake \
build-essential \
curl \
ca-certificates \
libcurl4-gnutls-dev \
# CUDA Toolkit (もしベースイメージに含まれていない場合。通常はNVIDIAのCUDAイメージを使う方が楽)
# nvidia-cuda-toolkit # これは例です。適切なCUDAのインストール方法はベースイメージによります。
# NVIDIAの公式イメージ (例: nvidia/cuda:12.1.1-devel-ubuntu22.04) を使うのが推奨
&& rm -rf /var/lib/apt/lists/*
# (オプション) もし特定のCUDAバージョンが必要で、ベースイメージにない場合
# CUDA Toolkitのインストール手順をここに追加。
# 例: NVIDIAのサイトからインストーラーをダウンロードして実行など。
# 詳細は https://developer.nvidia.com/cuda-downloads を参照。
# llama.cpp のクローンとビルド
RUN git clone https://github.com/ggerganov/llama.cpp.git /app/llama.cpp
WORKDIR /app/llama.cpp
RUN mkdir build && cd build && \
cmake .. -DGGML_CUDA=ON && \
cmake --build . --config Release
# (推奨) モデルダウンロード用のディレクトリ作成と権限設定
RUN mkdir /models && chmod 777 /models
VOLUME /models # Spaceのストレージにマッピングされることを期待 (永続化のため)
# 公開するポート
EXPOSE 8000
# サーバー起動コマンド
# モデルは初回起動時にHugging Face Hubから自動ダウンロードされます
# --host 0.0.0.0 で外部からのアクセスを許可
# --port 7860 でSpaceが公開するポートに合わせる
# --model-path /models/ でモデルのダウンロード先を指定 (キャッシュのため)
# (ただし、-hf オプションはカレントディレクトリか~/.cache/huggingface/hub/にダウンロードすることが多いので、
# この--model-pathはGGUFファイル名を直接指定する場合に有効。-hfと併用する場合の挙動を確認ください)
ENV MODEL_ID="unsloth/Qwen3-30B-A3B-GGUF"
# -hfを使う場合、ダウンロード先は自動で決まることが多いです。
CMD ["/app/llama.cpp/build/bin/llama-server", \
"-hf", MODEL_ID, \
"--cache-type-k", "q4_0", \
"--threads", "12", \
"--prio", "2", \
"--n-gpu-layers", "49", \
"--seed", "3407", \
"--port", "7860", \
"--host", "0.0.0.0"]
# (オプション) モデルのキャッシュ場所を指定したい場合
# "--model-alias", "default=/models/qwen3-30b.gguf" のようにし、
# CMDの -hf の代わりに -m /models/qwen3-30b.gguf のようにする手もあるが、
# -hf による自動ダウンロードの方が便利。
# GGUFファイルのダウンロード先を固定したい場合は、
# 起動スクリプトで事前にダウンロードするなどの工夫も考えられます。