用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/arm2arm/AstroAgentAssistant --skill vllm-docker-local-serving命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
S3/MinIO operations: connectivity, transfers, read benchmarks, and matplotlib visualization templates.
Complete guide to the REANA reproducible analytics platform: Dockerized client setup, multi-backend profiles, workflow authoring patterns, S3 dataset workflows, and best practices. Covers dev/prod backends, serial workflows, REANA_WORKSPACE usage, and self-learning from finished workflows.
Complete guide to working with Arepo simulation HDF5 files: structure inspection, unit conversion, radial profiles, slice projections, and dimensionality reduction (UMAP/t-SNE) for clustering analysis.
正在显示 SKILL.md
| name | vllm-docker-local-serving |
| description | Use when running vLLM in Docker on a local GPU host. |
Class: running vllm/vllm-openai containers on a physical GPU box (e.g. AIP ARM64 host, container named per model) and verifying the endpoint is actually usable — including agent use (tool calls). Covers container recreation, port binding, cache persistence, cold-start diagnosis.
docker run -d --name qwen38 --gpus all --ipc host \
-p <host-ip>:8002:8002 \
-v vllm-cache:/root/.cache/vllm \
-v hf-cache:/root/.cache/huggingface \
--entrypoint vllm vllm/vllm-openai:v0.27.1-aarch64 \
serve Qwen/Qwen3.8-27B-FP8 \
--served-model-name qwen3.8-27b \
--host 0.0.0.0 --port 8002 \
--max-model-len 262144 \
--gpu-memory-utilization 0.85 \
--enable-prefix-caching \
--reasoning-parser qwen3 --tool-call-parser qwen3_xml --enable-auto-tool-choice \
--speculative-config '{"method":"dspark","model":"Doopeworld/Qwen3.8-27B-DSpark-vLLM","num_speculative_tokens":7,"draft_sample_method":"probabilistic"}'
Note --entrypoint vllm (image default entrypoint differs) and that DSpark speculative decode needs the separate draft model from HF. The bundled serving-llms-vllm skill is protected from curator patches — keep container-ops lessons here.
-p 127.0.0.1:PORT:PORT = loopback only. External clients get connection refused even though the container is healthy.lo (ip route get <ip> → local ... dev lo), so curl http://<host-ip>:PORT FROM the host tests the loopback bind, not external reachability. An "unreachable" IP may actually be the local host.ss -tln | grep <port>.-p <host-ip>:8002:8002), not 0.0.0.0, to limit exposure.docker rm destroys the container filesystem, including /root/.cache. Consequences:
Fix: mount named volumes for /root/.cache/vllm and /root/.cache/huggingface in the run command. If you must recreate without them, docker cp qwen38:/root/.cache/. /tmp/cache-backup/ before docker rm and restore after.
Loading safetensors checkpoint shards: NN% progress (≈3 min for 27B FP8).Warming up ... Triton kernels, flashinfer.jit: Autotuning process starts, then a long silent stretch (minutes; much longer on cold cache)./health returns 200.Diagnosing the silent stretch (compile vs. hang): docker logs idle + GPU 0% but the EngineCore process at ~100% CPU inside the container = compilation, not deadlock. Poll /health in a background loop (30 s interval, up to ~50 min budget) — foreground 600 s terminals time out mid-warmup and look like failures.
GET /health → 200GET /v1/models → confirm model id + max_model_lenPOST /v1/chat/completions minimal prompt, max_tokens ≥ 50 (reasoning models burn tokens on reasoning content)tools array — confirm the response carries a well-formed tool_calls entry (parser-dependent; e.g. qwen3_xml)