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:
metabrainz/musicbrainz-docker-musicbrainz:<tag> (repository) for the service musicbrainz ,
metabrainz/musicbrainz-docker-db:<tag> (repository) for the service db.
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
[x] Merge the parent pull request #278
[x] Double-check that destination branch is schema-change-2024-q2 and rebase if needed
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 thedb
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:
metabrainz/musicbrainz-docker-musicbrainz:<tag>
(repository) for the servicemusicbrainz
,metabrainz/musicbrainz-docker-db:<tag>
(repository) for the servicedb
.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
schema-change-2024-q2
and rebase if needed