containers / containers/ramalama
Ramalama serve with RAG failed to start after 10 seconds
- Dominant language
- Python
- Stars
- 3k
- Forks
- 364
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 19
Description
### Issue Description
Hello. I have been able to experiment a lot with ramalama, nd now I'm trying to explore the RAG features of this amazing project.
After running:
`ramalama rag rag_oci_image`
i tried to serve tiny model with rag argument to include the vectordb in the oci image generated with in the previous step.
`ramalama --debug serve --generate compose --rag rag_oci_image tiny`
the command is failing stating it can start llama.cpp in 10 seconds.
### Steps to reproduce the issue
`ramalama --debug serve --generate compose --rag rag_oci_image tiny`
### Describe the results you received
ERROR: Application startup failed. Exiting.
No server responding at host.containers.internal:8082, retrying for up to 10 seconds...
Error: llama-server at host.containers.internal:8082 did not become ready after 10 seconds.
### Describe the results you expected
To have llama.ccp running
### ramalama info output
```yaml
{
"Accelerator": "none",
"Config": {
"settings": {
"config_files": [
"/root/.local/share/uv/tools/ramalama/share/ramalama/ramalama.conf"
]
}
},
"Engine": {
"Info": {
"host": {
"arch": "amd64",
"buildahVersion": "1.39.3",
"cgroupControllers": [
"cpuset",
"cpu",
"io",
"memory",
"hugetlb",
"pids",
"rdma",
"misc"
],
"cgroupManager": "systemd",
"cgroupVersion": "v2",
"conmon": {
"package": "conmon_2.1.12-4_amd64",
"path": "/usr/bin/conmon",
"version": "conmon version 2.1.12, commit: unknown"
},
"cpuUtilization": {
"idlePercent": 97.51,
"systemPercent": 0.09,
"userPercent": 2.4
},
"cpus": 4,
"databaseBackend": "sqlite",
"distribution": {
"codename": "trixie",
"distribution": "debian",
"version": "13"
},
"eventLogger": "journald",
"freeLocks": 2047,
"hostname": "debhome",
"idMappings": {
"gidmap": null,
"uidmap": null
},
"kernel": "6.12.41+deb13-amd64",
"linkmode": "dynamic",
"logDriver": "journald",
"memFree": 9736966144,
"memTotal": 16507269120,
"networkBackend": "netavark",
"networkBackendInfo": {
"backend": "netavark",
"dns": {
"package": "aardvark-dns_1.14.0-3_amd64",
"path": "/usr/lib/podman/aardvark-dns",
"version": "aardvark-dns 1.14.0"
},
"package": "netavark_1.14.0-2_amd64",
"path": "/usr/lib/podman/netavark",
"version": "netavark 1.14.0"
},
"ociRuntime": {
"name": "runc",
"package": "containerd.io_1.7.29-1~debian.13~trixie_amd64",
"path": "/usr/bin/runc",
"version": "runc version 1.3.3\ncommit: v1.3.3-0-gd842d771\nspec: 1.2.1\ngo: go1.24.9\nlibseccomp: 2.6.0"
},
"os": "linux",
"pasta": {
"executable": "/usr/bin/pasta",
"package": "passt_0.0~git20250503.587980c-2_amd64",
"version": ""
},
"remoteSocket": {
"exists": true,
"path": "/run/podman/podman.sock"
},
"rootlessNetworkCmd": "pasta",
"security": {
"apparmorEnabled": true,
"capabilities": "CAP_CHOWN,CAP_DAC_OVERRIDE,CAP_FOWNER,CAP_FSETID,CAP_KILL,CAP_NET_BIND_SERVICE,CAP_SETFCAP,CAP_SETGID,CAP_SETPCAP,CAP_SETUID,CAP_SYS_CHROOT",
"rootless": false,
"seccompEnabled": true,
"seccompProfilePath": "/usr/share/containers/seccomp.json",
"selinuxEnabled": false
},
"serviceIsRemote": false,
"slirp4netns": {
"executable": "/usr/bin/slirp4netns",
"package": "slirp4netns_1.2.1-1.1_amd64",
"version": "slirp4netns version 1.2.1\ncommit: 09e31e92fa3d2a1d3ca261adaeb012c8d75a8194\nlibslirp: 4.8.0\nSLIRP_CONFIG_VERSION_MAX: 5\nlibseccomp: 2.6.0"
},
"swapFree": 9949003776,
"swapTotal": 10000265216,
"uptime": "315h 28m 57.00s (Approximately 13.12 days)",
"variant": ""
},
"plugins": {
"authorization": null,
"log": [
"k8s-file",
"none",
"passthrough",
"journald"
],
"network": [
"bridge",
"macvlan",
"ipvlan"
],
"volume": [
"local"
]
},
"registries": {},
"store": {
"configFile": "/usr/share/containers/storage.conf",
"containerStore": {
"number": 1,
"paused": 0,
"running": 1,
"stopped": 0
},
"graphDriverName": "overlay",
"graphOptions": {
"overlay.mountopt": "nodev"
},
"graphRoot": "/var/lib/containers/storage",
"graphRootAllocated": 491001659392,
"graphRootUsed": 125398740992,
"graphStatus": {
"Backing Filesystem": "extfs",
"Native Overlay Diff": "true",
"Supports d_type": "true",
"Supports shifting": "true",
"Supports volatile": "true",
"Using metacopy": "false"
},
"imageCopyTmpDir": "/var/tmp",
"imageStore": {
"number": 5
},
"runRoot": "/run/containers/storage",
"transientStore": false,
"volumePath": "/var/lib/containers/storage/volumes"
},
"version": {
"APIVersion": "5.4.2",
"BuildOrigin": "Debian",
"Built": 1753478586,
"BuiltTime": "Fri Jul 25 23:23:06 2025",
"GitCommit": "",
"GoVersion": "go1.24.4",
"Os": "linux",
"OsArch": "linux/amd64",
"Version": "5.4.2"
}
},
"Name": "podman"
},
"Image": "quay.io/ramalama/ramalama:latest",
"Inference": {
"Default": "llama.cpp",
"Engines": {
"llama.cpp": "/root/.local/share/uv/tools/ramalama/share/ramalama/inference/llama.cpp.yaml",
"mlx": "/root/.local/share/uv/tools/ramalama/share/ramalama/inference/mlx.yaml",
"schema.1-0-0": "/root/.local/share/uv/tools/ramalama/share/ramalama/inference/schema.1-0-0.json",
"vllm": "/root/.local/share/uv/tools/ramalama/share/ramalama/inference/vllm.yaml"
},
"Schema": {
"1-0-0": "/root/.local/share/uv/tools/ramalama/share/ramalama/inference/schema.1-0-0.json"
}
},
"RagImage": "quay.io/ramalama/ramalama-rag:latest",
"Selinux": false,
"Shortnames": {
"Files": [
"/root/.local/share/uv/tools/ramalama/share/ramalama/shortnames.conf"
],
"Names": {
"cerebrum": "huggingface://froggeric/Cerebrum-1.0-7b-GGUF/Cerebrum-1.0-7b-Q4_KS.gguf",
"deepseek": "ollama://deepseek-r1",
"dragon": "huggingface://llmware/dragon-mistral-7b-v0/dragon-mistral-7b-q4_k_m.gguf",
"gemma3": "hf://ggml-org/gemma-3-4b-it-GGUF",
"gemma3:12b": "hf://ggml-org/gemma-3-12b-it-GGUF",
"gemma3:1b": "hf://ggml-org/gemma-3-1b-it-GGUF/gemma-3-1b-it-Q4_K_M.gguf",
"gemma3:27b": "hf://ggml-org/gemma-3-27b-it-GGUF",
"gemma3:4b": "hf://ggml-org/gemma-3-4b-it-GGUF",
"gemma3n": "hf://ggml-org/gemma-3n-E4B-it-GGUF/gemma-3n-E4B-it-Q8_0.gguf",
"gemma3n:e2b": "hf://ggml-org/gemma-3n-E2B-it-GGUF/gemma-3n-E2B-it-Q8_0.gguf",
"gemma3n:e2b-it-f16": "hf://ggml-org/gemma-3n-E2B-it-GGUF/gemma-3n-E2B-it-f16.gguf",
"gemma3n:e2b-it-q8_0": "hf://ggml-org/gemma-3n-E2B-it-GGUF/gemma-3n-E2B-it-Q8_0.gguf",
"gemma3n:e4b": "hf://ggml-org/gemma-3n-E4B-it-GGUF/gemma-3n-E4B-it-Q8_0.gguf",
"gemma3n:e4b-it-f16": "hf://ggml-org/gemma-3n-E4B-it-GGUF/gemma-3n-E4B-it-f16.gguf",
"gemma3n:e4b-it-q8_0": "hf://ggml-org/gemma-3n-E4B-it-GGUF/gemma-3n-E4B-it-Q8_0.gguf",
"gpt-oss": "hf://ggml-org/gpt-oss-20b-GGUF",
"gpt-oss:120b": "hf://ggml-org/gpt-oss-120b-GGUF",
"gpt-oss:20b": "hf://ggml-org/gpt-oss-20b-GGUF",
"granite": "ollama://granite3.1-dense",
"granite-be-3.0:1b": "hf://taronaeo/Granite-3.0-1B-A400M-Instruct-BE-GGUF/granite-3.0-1b-a400m-instruct-be.Q2_K.gguf",
"granite-be-3.3:2b": "hf://taronaeo/Granite-3.3-2B-Instruct-BE-GGUF/granite-3.3-2b-instruct-be.Q4_K_M.gguf",
"granite-lab-7b": "huggingface://instructlab/granite-7b-lab-GGUF/granite-7b-lab-Q4_K_M.gguf",
"granite-lab-8b": "huggingface://ibm-granite/granite-3.3-8b-instruct-GGUF/granite-3.3-8b-instruct-Q4_K_M.gguf",
"granite-lab:7b": "huggingface://instructlab/granite-7b-lab-GGUF/granite-7b-lab-Q4_K_M.gguf",
"granite:2b": "ollama://granite3.1-dense:2b",
"granite:7b": "huggingface://instructlab/granite-7b-lab-GGUF/granite-7b-lab-Q4_K_M.gguf",
"granite:8b": "ollama://granite3.1-dense:8b",
"hermes": "huggingface://NousResearch/Hermes-2-Pro-Mistral-7B-GGUF/Hermes-2-Pro-Mistral-7B.Q4_K_M.gguf",
"ibm/granite": "ollama://granite3.1-dense:8b",
"ibm/granite:2b": "ollama://granite3.1-dense:2b",
"ibm/granite:7b": "huggingface://instructlab/granite-7b-lab-GGUF/granite-7b-lab-Q4_K_M.gguf",
"ibm/granite:8b": "ollama://granite3.1-dense:8b",
"merlinite": "huggingface://instructlab/merlinite-7b-lab-GGUF/merlinite-7b-lab-Q4_K_M.gguf",
"merlinite-lab-7b": "huggingface://instructlab/merlinite-7b-lab-GGUF/merlinite-7b-lab-Q4_K_M.gguf",
"merlinite-lab:7b": "huggingface://instructlab/merlinite-7b-lab-GGUF/merlinite-7b-lab-Q4_K_M.gguf",
"merlinite:7b": "huggingface://instructlab/merlinite-7b-lab-GGUF/merlinite-7b-lab-Q4_K_M.gguf",
"mistral": "hf://lmstudio-community/Mistral-7B-Instruct-v0.3-GGUF/Mistral-7B-Instruct-v0.3-Q4_K_M.gguf",
"mistral-small3.1": "hf://bartowski/mistralai_Mistral-Small-3.1-24B-Instruct-2503-GGUF/mistralai_Mistral-Small-3.1-24B-Instruct-2503-IQ2_M.gguf",
"mistral-small3.1:24b": "hf://bartowski/mistralai_Mistral-Small-3.1-24B-Instruct-2503-GGUF/mistralai_Mistral-Small-3.1-24B-Instruct-2503-IQ2_M.gguf",
"mistral:7b": "hf://lmstudio-community/Mistral-7B-Instruct-v0.3-GGUF/Mistral-7B-Instruct-v0.3-Q4_K_M.gguf",
"mistral:7b-v1": "huggingface://TheBloke/Mistral-7B-Instruct-v0.1-GGUF/mistral-7b-instruct-v0.1.Q5_K_M.gguf",
"mistral:7b-v2": "huggingface://TheBloke/Mistral-7B-Instruct-v0.2-GGUF/mistral-7b-instruct-v0.2.Q4_K_M.gguf",
"mistral:7b-v3": "hf://lmstudio-community/Mistral-7B-Instruct-v0.3-GGUF/Mistral-7B-Instruct-v0.3-Q4_K_M.gguf",
"mistral_code_16k": "huggingface://TheBloke/Mistral-7B-Code-16K-qlora-GGUF/mistral-7b-code-16k-qlora.Q4_K_M.gguf",
"mistral_codealpaca": "huggingface://TheBloke/Mistral-7B-codealpaca-lora-GGUF/mistral-7b-codealpaca-lora.Q4_K_M.gguf",
"mixtao": "huggingface://MaziyarPanahi/MixTAO-7Bx2-MoE-Instruct-v7.0-GGUF/MixTAO-7Bx2-MoE-Instruct-v7.0.Q4_K_M.gguf",
"openchat": "huggingface://TheBloke/openchat-3.5-0106-GGUF/openchat-3.5-0106.Q4_K_M.gguf",
"openorca": "huggingface://TheBloke/Mistral-7B-OpenOrca-GGUF/mistral-7b-openorca.Q4_K_M.gguf",
"phi2": "huggingface://MaziyarPanahi/phi-2-GGUF/phi-2.Q4_K_M.gguf",
"qwen2.5vl": "hf://ggml-org/Qwen2.5-VL-32B-Instruct-GGUF",
"qwen2.5vl:2b": "hf://ggml-org/Qwen2.5-VL-2B-Instruct-GGUF",
"qwen2.5vl:32b": "hf://ggml-org/Qwen2.5-VL-32B-Instruct-GGUF",
"qwen2.5vl:3b": "hf://ggml-org/Qwen2.5-VL-3B-Instruct-GGUF",
"qwen2.5vl:7b": "hf://ggml-org/Qwen2.5-VL-7B-Instruct-GGUF",
"smollm:135m": "hf://HuggingFaceTB/smollm-135M-instruct-v0.2-Q8_0-GGUF",
"smolvlm": "hf://ggml-org/SmolVLM-500M-Instruct-GGUF",
"smolvlm:256m": "hf://ggml-org/SmolVLM-256M-Instruct-GGUF",
"smolvlm:2b": "hf://ggml-org/SmolVLM-Instruct-GGUF",
"smolvlm:500m": "hf://ggml-org/SmolVLM-500M-Instruct-GGUF",
"stories-be:260k": "hf://taronaeo/tinyllamas-BE/stories260K-be.gguf",
"tiny": "hf://TheBloke/TinyLlama-1.1B-Chat-v1.0-GGUF",
"tinyllama": "hf://TheBloke/TinyLlama-1.1B-Chat-v1.0-GGUF"
}
},
"Store": "/var/lib/ramalama",
"UseContainer": true,
"Version": "0.14.0"
}
```
### Upstream Latest Release
Yes
### Additional environment details
_No response_
### Additional information
I found that the message came from this python script.
https://github.com/containers/ramalama/blob/main/container-images/scripts/rag_framework#L119
However I'm not able to understand in whic part of the process the llama.cpp server is being launched.
Contributor guide
Research direction
Start by reproducing `ramalama --debug serve --generate compose --rag rag_oci_image tiny` and inspect the reported llama-server startup failure at `host.containers.internal:8082`. Done means the command starts the llama.cpp server with the RAG image and no longer reports the 10-second readiness timeout.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- ai, backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100