feat: Add PostgreSQL 13-16 support with plv8 3.x, pg_tle, and multi-arch builds#44
Open
kevinmichaelchen wants to merge 3 commits intoclkao:masterfrom
Open
Conversation
…ilds This update modernizes the image repository to support newer PostgreSQL versions and adds several important features: ## New Features - **PostgreSQL 13-16 support**: Added Dockerfiles for PostgreSQL 13, 14, 15, and 16 with plv8 3.2.4 (directories: 13-3, 14-3, 15-3, 16-3) - **pg_tle integration**: Created variants with pg_tle (Trusted Language Extensions) pre-installed and configured for PostgreSQL 12-16 (directories: 12-2-tle through 16-3-tle) - **Multi-architecture support**: Added support for building AMD64 and ARM64 (Apple Silicon) images via Docker Buildx - build-multiarch.sh script for local multi-arch builds - GitHub Actions workflow for automated CI/CD builds ## Fixes - **Resolved Debian Buster archive issues**: New images use official postgres:XX base images which provide modern Debian (Bookworm), eliminating 404 errors from archived Debian Buster repositories ## Documentation - Updated README with new PostgreSQL versions and plv8 3.x support - Added pg_tle usage documentation - Added multi-architecture build instructions - Reorganized tags by version category for better clarity Resolves issues with outdated PostgreSQL versions, archived Debian base, and lack of ARM64 support.
Updates older PostgreSQL versions to use the latest plv8 version (3.2.4) for consistency across all images and to resolve known bugs. ## Changes - **PostgreSQL 12**: Updated from plv8 2.3.13 to 3.2.4 - **PostgreSQL 11**: Updated from plv8 2.3.13 to 3.2.4 - **PostgreSQL 10**: Updated from plv8 2.3.13 to 3.2.4 - **PostgreSQL 9.6**: Updated from plv8 v2.1.0 to 3.2.4 ## Dependency Updates - Updated `python` to `python3` for all versions - Added `libc++abi-dev` to build dependencies where missing - Added `libc++abi1` and `libtinfo5` to runtime dependencies - Standardized build process across all versions ## Bug Fixes Resolves GitHub issue clkao#36 - plv8 2.3.13 bug is fixed in newer versions. The update to 3.2.4 includes all bug fixes from 2.3.14 onwards.
Implements a release workflow that automatically creates granular Docker Hub tags from Git tags, enabling users to pin specific plv8 versions. ## Features - **Automated versioned tags**: Git tag `v3.2.4` creates: - Full version: `16-3.2.4`, `15-3.2.4`, etc. - Minor version: `16-3.2`, `15-3.2`, etc. - Major version: `16-3`, `15-3`, etc. - **Supports all PostgreSQL versions**: 9.6 through 16 - **Includes pg_tle variants**: Separate tags with `-tle` suffix - **Multi-architecture**: Builds for both AMD64 and ARM64 - **Manual trigger option**: Can manually trigger via workflow_dispatch ## Workflow The release.yml workflow triggers on: 1. Push of version tags (e.g., `v3.2.4`) 2. Manual workflow dispatch with version input This provides immutable, versioned tags for reproducible builds while maintaining mutable convenience tags (latest, 16-3). ## Documentation Updated README with: - Tag format explanation and examples - Release creation instructions - Automated build tag generation details Resolves GitHub issue clkao#12.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This update modernizes the
clkaoimage repository to support newer PostgreSQL versions and adds several important features.Motivation
Note
The crux of why I made this was:
pg_jsonschema) exists for this, but it's not supported on AWS RDS." 😩Users of Postgres'
JSONandJSONBcolumns might be wanting JSON Schema support. The most well-known extension that offers JSON Schema is the one from Supabase (see their post and source). Unfortunately, such extensions are not universally supported. For example, AWS RDS does not supportpg_jsonschema. However, they do support Trusted Language Extensions (TLE), which can be written in PL/V8, which allows you to write functions in Javascript that are available in SQL. The purpose behind this PR is to provide basic Docker images that provide both PL/V8 and TLE out of the box. No such images exist. Such images will make it trivial to test any JS-written functions you plan on writing and shipping.New Features
PostgreSQL 13-16 support: Added Dockerfiles for PostgreSQL 13, 14, 15,
and 16 with
plv83.2.4 (directories: 13-3, 14-3, 15-3, 16-3)pg_tle integration: Created variants with
pg_tle(Trusted Language Extensions) pre-installed and configured for PostgreSQL 12-16 (directories:12-2-tlethrough16-3-tle)Multi-architecture support: Added support for building AMD64 and ARM64 (Apple Silicon) images via Docker Buildx
build-multiarch.shscript for local multi-arch buildsFixes
postgres:XXbase images which provide modern Debian (Bookworm), eliminating 404 errors from archived Debian Buster repositoriesDocumentation
plv83.x supportpg_tleusage documentationResolves issues with outdated PostgreSQL versions, archived Debian base, and lack of ARM64 support.