rikunarita-3's picture
Update Dockerfile
8065594 verified
Raw
History Blame Contribute Delete
2.68 kB
# syntax=docker/dockerfile:1
# ---------------------------------------------------------
# Stage 1: モデルダウンロード専用ステージ
# huggingface_hub / pip / venv 等のビルド専用ツールを
# 最終イメージに残さないための分離(ComfyUI側のbuilderステージに相当)
# ---------------------------------------------------------
FROM python:3.11-slim-bookworm AS downloader
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /models
RUN pip install --no-cache-dir -U huggingface_hub
# モデルとmmprojをダウンロード
RUN python3 -c 'from huggingface_hub import hf_hub_download; \
model_repo="empero-ai/Qwythos-9B-Claude-Mythos-5-1M-GGUF"; \
mmproj_repo="unsloth/Qwen3.5-9B-GGUF"; \
hf_hub_download(repo_id=model_repo, filename="Qwythos-9B-Claude-Mythos-5-1M-Q4_K_M.gguf", local_dir="/models"); \
hf_hub_download(repo_id=mmproj_repo, filename="mmproj-BF16.gguf", local_dir="/models")'
# ---------------------------------------------------------
# Stage 2: ランタイム
# ---------------------------------------------------------
FROM ghcr.io/ggml-org/llama.cpp:full
# メモリアロケータ:jemalloc(CPU推論時の断片化対策・ComfyUI側と同じ狙い)
RUN apt-get update && apt-get install -y --no-install-recommends \
libjemalloc2 \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# 非rootユーザーで実行(ComfyUI側と同じ方針)
# 注: UID 1001 は通常ユーザー領域のため -r(システムアカウント)は付けない
# (-r と SYS_UID_MAX(通常999)を超えるUIDの組み合わせはbuild時にwarningが出るだけで
# fatalではないが、意味的に矛盾するため削除)
RUN useradd -m -d /home/llama -s /bin/bash -g root -G sudo -u 1001 llama
WORKDIR /app
# ビルド成果物(モデルファイル)のみをコピー
COPY --from=downloader --chown=llama:root /models /app
USER llama
# jemalloc 有効化
ENV LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2
ENV MALLOC_CONF="background_thread:true,metadata_thp:auto,dirty_decay_ms:0,muzzy_decay_ms:0"
#
ENV OMP_NUM_THREADS=2
ENV KMP_AFFINITY=granularity=fine,compact
ENV OMP_WAIT_POLICY=ACTIVE
ENV KMP_BLOCKTIME=infinite
CMD ["--server", \
"-m", "/app/Qwythos-9B-Claude-Mythos-5-1M-Q4_K_M.gguf", \
"--mmproj", "/app/mmproj-BF16.gguf", \
"--tools", "all", \
"--host", "0.0.0.0", \
"--port", "7860", \
"-t", "2", \
"--cache-type-k", "q8_0", \
"--cache-type-v", "q8_0", \
"-c", "32000", \
"-n", "24000"]