Ollama on NVIDIA CUDA 12.4.1, ready for GPU containers.
FROM nvidia/cuda:12.4.1-base-ubuntu22.04
ENV DEBIAN_FRONTEND=noninteractive
ENV OLLAMA_HOST=0.0.0.0:11434
ENV OLLAMA_CONTEXT_LENGTH=65536
RUN apt-get update && apt-get install -y \
curl \
ca-certificates \
zstd \
&& rm -rf /var/lib/apt/lists/*
# Install Ollama
RUN curl -fsSL https://ollama.com/install.sh | sh
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
EXPOSE 11434
ENTRYPOINT ["/entrypoint.sh"]
#!/bin/bash
set -euo pipefail
NODE_ID="$(hostname | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9-]/-/g')-$(printf '%04x' $RANDOM)"
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo " DYNAMIC GPU NODE INSTALLER – $NODE_ID"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
# ── Export Docker env vars so SSH sessions can see them ─────────────────
printenv | grep -v '^_=' > /etc/environment
# ── [1/2] Start Ollama ──────────────────────────────────────────────────
echo "▶ [1/2] Starting Ollama..."
ollama serve &
OLLAMA_PID=$!
echo " Waiting for Ollama..."
for i in $(seq 1 30); do
curl -sf "http://localhost:11434/api/version" > /dev/null 2>&1 && echo " Ollama is up!" && break
echo " Attempt $i/30..." && sleep 3
done
curl -sf "http://localhost:11434/api/version" || { echo "ERROR: Ollama not responding"; exit 1; }
# ── [2/2] placeholder — add your step 2 logic here ─────────────────────
echo ""
echo "▶ [2/2] (step 2 not provided — add your logic here)"
# If additional commands were passed, exec them now
if [ "$#" -gt 0 ]; then
echo ""
echo "▶ Running: $*"
exec "$@"
fi
# Keep container alive by waiting on Ollama process
wait $OLLAMA_PID
| Variable | Default | Description |
|---|---|---|
OLLAMA_HOST | 0.0.0.0:11434 | Bind address for Ollama |
OLLAMA_CONTEXT_LENGTH | 65536 | Context window size |
docker run --gpus all -p 11434:11434 scratchy/ollama
Content type
Image
Digest
sha256:d96547adb…
Size
2.9 GB
Last updated
7 months ago
docker pull scratchy/ollama