metabrainz / musicbrainz-docker

Docker Compose project for the MusicBrainz Server with replication, search, and development setup
https://musicbrainz.org/doc/MusicBrainz_Server/Setup
284 stars 72 forks source link

MBVM-42: Prebuild images for the services db and musicbrainz #279

Closed yvanzo closed 1 month ago

yvanzo commented 1 month ago

MBVM-42

The last service to still be fully built from source was musicbrainz. It was taking some time (as Perl modules were installed sequentially, and now even Perl itself is compiled from source), and happened to break after release time on unexpected upstream changes.

Also, the pg_amqp extension was still built from source for the db service. It was taking some time for compilation, and happened to break after release time on unexpected upstream changes too.

Solution

This patch makes deploying mirror to use the following prebuilt images by default instead of building these from the source:

These images have to be built and pushed by the repository maintainers, using the newly added scripts, before each release. It is always trying to pull the latest upstream Docker image for security updates.

Notes

For backward compatibility, the image tag isn’t set in the compose files directly, it is set in a Dockerfile instead. It makes it incidentally easier to customize the images for particular needs. It will be revisited when merging into musicbrainz-server repository.

Testing

It has been tested for Postgres 16 / MusicBrainz database schema 29 upgrades in mirror setup and development setup.

Checklist