tada / pljava

PL/Java is a free add-on module that brings Java™ Stored Procedures, Triggers, Functions, Aggregates, Operators, Types, etc., to the PostgreSQL™ backend.
http://tada.github.io/pljava/
Other
238 stars 77 forks source link

wiki update: prebuilt docker images #448

Closed beargiles closed 9 months ago

beargiles commented 10 months ago

Wiki update - for prebuilt docker images

I mentioned this in the mailing list but it doesn't seem to have been picked up.

I have pre-built docker images (on https://hub.docker.com) that extend the official PostgreSQL docker images. It should automatically follow new official releases.

There's three images:

beargiles/postgres-pgxnclient

Official image with only pgxn-client installed. This can be used as the base for other extensions.

beargiles/postgres-pljava

Same as above but with pg/java installed. It includes the default Java 11 JRE.

beargiles/postgres-pljava-dev

Same as above but with everything required to built the extension. Note: this uses Java 17 JDK, not the Java 11 JDK.

This target was motivated by the failure to create the dev environment on Ubuntu 22.10 due to bad dependencies. This problem goes away when using the official PostgreSQL image.

(I haven't been able to consistently install the Java 11 JDK using the default repository configuration.)

Docker image versions

The docker image versions match the upstream image versions. It does not provide the pl/java version.

Notes (not for wiki)

At the moment I've only pushed 15.3 but I'll add 12.x, 13.x, and 14.x in the next few days.

Links

https://hub.docker.com/repositories/beargiles

https://github.com/tada/pljava/wiki/Prebuilt-packages

beargiles commented 9 months ago

I've fixed the CI/CD on my project (https://github.com/beargiles/postgresql-pljava-docker) - it should automatically build and deploy new images as new official PostgreSQL docker images are released. (No RC versions though.)

Modulo the fact that I'm only checking once a week - I should probably bump that since I've fixed the bug that resulted in repeated builds and deployments.

PLUS

I now build both 'bookworm' and 'bullseye' versions. You aren't forced to use the latest Debian release. I am not building the Alpine version.

PLUS

I've modified the pljava-dev version so it downloads and rebuilds the Debian source package (postgresql-15-pljava). That's usually a good thing if you want to modify a package (e.g., you want to edit pl/java itself) but there's a rather big annoyance that the upstream provider includes the pl/java version in the name of the source directory (postgresql-pljava-1.6.4). I don't have an easy way to determine this within the Dockerfile so updates to that image will break when the upstream moves to 1.6.5.

It should be easy to fix with a simple shell script - I've been focused on creating a clean Dockerfile first.

FINALLY

I mentioned it above - as I write this the latest official PostgreSQL 14 and 15 packages still use 1.6.4. It will still be far easier to start with this image (simply replace the 1.6.4 jar) than to perform the full installation from scratch.

The official PostgreSQL packages do not yet provide a pljava package for 16rc1.

jcflack commented 9 months ago

I've added this to the prebuilt-packages wiki page. Thanks for your patience. I wish GitHub had a few more intermediate wiki-permission options between "nobody else can edit" and "everybody can edit".