Wald-4B / Dockerfile
org2ai
Wald-Q4B v2 (04701-c22 + Qwen3.5-4B vision tower): main = v2; v1.x at tags v1.2 / v1.2-main / v1.1 / v1.0
ef7481d
Raw History Blame
1.21 kB
# Wald-4B v2 /v1/systemone server: vLLM 0.30.0 (bf16) on the weights as a loopback-only sidecar + wald-serve-native.
#
# docker build -t wald-serve .
# docker run --gpus all -v /path/to/Wald-4B:/model:ro -p 8000:8000 wald-serve
# # ready when GET http://127.0.0.1:8000/health returns {"ok": true, ...}
#
# The weights directory holds config, tokenizer, chat template, model.safetensors, temperature.json and serving.json
# (native v2 engine, effort, prompt format). Another policy: -e WALD_EFFORT=none (none | auto | always).
FROM python:3.12-slim
RUN pip install --no-cache-dir uv==0.9.5 \
&& uv pip install --system --no-cache "vllm==0.30.0" "transformers==5.17.0" \
&& python -c "import importlib.metadata as m; print('vllm', m.version('vllm'), 'transformers', m.version('transformers'), 'torch', m.version('torch'))"
COPY server /app/server
RUN uv pip install --system --no-cache /app/server
ENV HF_HUB_OFFLINE=1 TRANSFORMERS_OFFLINE=1 TOKENIZERS_PARALLELISM=false PYTHONUNBUFFERED=1 \
VLLM_USE_FLASHINFER_SAMPLER=0 VLLM_NO_USAGE_STATS=1 DO_NOT_TRACK=1 WALD_EFFORT=""
EXPOSE 8000
CMD ["sh", "-c", "exec wald-serve-native-vision --model /model --port 8000 ${WALD_EFFORT:+--effort $WALD_EFFORT}"]