Postgres images with a selected version of the pgvector extension installed.
Images are published to GitHub Container Registry for linux/amd64 and
linux/arm64. The extension is installed in the image but is not enabled in a
database automatically.
Tags use the same version order as the upstream pgvector images:
<pgvector-version>-pg<postgres-image-tag>
For example, Postgres 17-bookworm with pgvector 0.8.6 is published as:
ghcr.io/ovinc-cn/postgresvector:0.8.6-pg17-bookworm
No floating tags such as latest are published. Existing image tags, Git tags,
and GitHub Releases are never overwritten.
Docker BuildKit is required because the pgvector source is fetched from its Git tag during the build.
docker build --pull \
--build-arg POSTGRES_VERSION=17-bookworm \
--build-arg PGVECTOR_VERSION=0.8.6 \
--tag postgresvector:0.8.6-pg17-bookworm \
.POSTGRES_VERSION is passed directly to postgres:<version>. Official Debian
and Alpine variants are supported through automatic package-manager detection.
PGVECTOR_VERSION must be provided without the leading v when building
locally.
- Open Actions in this repository.
- Select Release image and choose Run workflow.
- Enter the official Postgres image tag, such as
17-bookworm. - Enter the pgvector version, such as
0.8.6orv0.8.6.
The workflow normalizes an optional leading v, builds a multi-platform image,
pushes it to GHCR, and then creates the matching Git tag and GitHub Release.
The first published GHCR package may be private. An organization package administrator can make it public from the package settings. GitHub does not allow a public package to be changed back to private.
Pull and run the image as you would an official Postgres image:
docker pull ghcr.io/ovinc-cn/postgresvector:0.8.6-pg17-bookworm
docker run --rm \
--name postgresvector \
-e POSTGRES_PASSWORD=postgres \
-p 5432:5432 \
ghcr.io/ovinc-cn/postgresvector:0.8.6-pg17-bookwormEnable pgvector once in each database that needs it:
CREATE EXTENSION vector;