df585b765a656b914feb07909159500b1c0a5be8
All checks were successful
🚀 Docker Build and Push / build-and-push (15) (push) Successful in 5m54s
🚀 Docker Build and Push / build-and-push (16) (push) Successful in 6m0s
🚀 Docker Build and Push / build-and-push (17) (push) Successful in 5m56s
🚀 Docker Build and Push / build-and-push (18) (push) Successful in 6m4s
- Split validation into 4 granular CI steps (Config, Timescale, Vector, Hybrid) - Added cleanup step for Docker images in CI - Created SQL test scripts in tests/ for robustness
TimescaleDB + VectorChord + pgvector
Docker image combining PostgreSQL with three powerful extensions:
- TimescaleDB - Time-series database extension
- VectorChord - High-performance vector similarity search
- pgvector - Open-source vector similarity search
Supported PostgreSQL Versions
| Tag | PostgreSQL | TimescaleDB | VectorChord | pgvector |
|---|---|---|---|---|
pg15 |
15 | 2.24.0 | 1.0.0 | 0.8.1 |
pg16 |
16 | 2.24.0 | 1.0.0 | 0.8.1 |
pg17 |
17 | 2.24.0 | 1.0.0 | 0.8.1 |
pg18, latest |
18 | 2.24.0 | 1.0.0 | 0.8.1 |
Quick Start
docker run -d \
--name my-postgres \
-e POSTGRES_PASSWORD=mysecretpassword \
-p 5432:5432 \
gitea.killinger.fr/maxime.killinger/postgres-ts-vectors:latest
All extensions are automatically created on first startup.
Environment Variables
| Variable | Description | Default |
|---|---|---|
POSTGRES_PASSWORD |
PostgreSQL password (required) | - |
POSTGRES_USER |
PostgreSQL user | postgres |
POSTGRES_DB |
Default database | postgres |
Extensions Usage
TimescaleDB
-- Create a hypertable
CREATE TABLE conditions (
time TIMESTAMPTZ NOT NULL,
device_id INTEGER,
temperature DOUBLE PRECISION
);
SELECT create_hypertable('conditions', 'time');
VectorChord / pgvector
-- Create a table with vector embeddings
CREATE TABLE documents (
id SERIAL PRIMARY KEY,
content TEXT,
embedding vector(1536)
);
-- Create an index for fast similarity search
CREATE INDEX ON documents USING vchordrq (embedding vector_l2_ops);
-- Query similar documents
SELECT * FROM documents
ORDER BY embedding <-> '[0.1, 0.2, ...]'
LIMIT 10;
Building Locally
# Build for PG18
docker build --build-arg PG_VERSION=18 -t my-image:pg18 .
# Build for PG16
docker build --build-arg PG_VERSION=16 -t my-image:pg16 .
License
This project is licensed under the Apache 2.0 License.
- TimescaleDB: Timescale License
- VectorChord: Apache 2.0
- pgvector: PostgreSQL License
Description
Languages
Dockerfile
64.8%
Shell
35.2%