PostgreSQL 17 with pgvector and PostGIS pre-installed for AI vector search
2.1K
PostgreSQL + pgvector, pre-configured and optimized for AI/RAG workloads.
Setting up PostgreSQL + pgvector for AI apps requires:
pgvector-ready does all of this out of the box.
docker run -d \
--name pgvector \
-p 5432:5432 \
-e POSTGRES_PASSWORD=secret \
-v pgdata:/var/lib/postgresql/data \
zachbg/pgvector-ready
services:
db:
image: zachbg/pgvector-ready
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_DB: ragapp
ports:
- "5432:5432"
volumes:
- pgdata:/var/lib/postgresql/data
ollama:
image: ollama/ollama
volumes:
- ollama:/root/.ollama
volumes:
pgdata:
ollama:
work_mem=256MB)documents table with vector(1536) column (OpenAI-compatible)match_embeddings() convenience functionINSERT INTO documents (content, metadata, embedding)
VALUES (
'PostgreSQL is a powerful database',
'{"source": "docs", "page": 1}',
'[0.1, 0.2, ...]'::vector
);
-- Find 10 most similar documents
SELECT id, content, 1 - (embedding <=> '[0.1, 0.2, ...]'::vector) AS similarity
FROM documents
ORDER BY embedding <=> '[0.1, 0.2, ...]'::vector
LIMIT 10;
SELECT * FROM match_embeddings(
'[0.1, 0.2, ...]'::vector,
'documents',
'embedding',
10, -- top 10 results
0.8 -- minimum similarity
);
-- For Ollama embeddings (varies by model)
ALTER TABLE documents ALTER COLUMN embedding TYPE vector(4096);
-- Rebuild index
DROP INDEX documents_embedding_idx;
CREATE INDEX documents_embedding_idx ON documents
USING hnsw (embedding vector_cosine_ops);
| Tag | Description |
|---|---|
17 | PostgreSQL 17 + pgvector |
16 | PostgreSQL 16 + pgvector |
latest | Latest PostgreSQL + pgvector |
MIT
Content type
Image
Digest
sha256:f4e853e1d…
Size
226.8 MB
Last updated
6 months ago
docker pull zachbg/pgvector-ready