zenodo / zenodo-rdm

Zenodo, powered by InvenioRDM
https://zenodo.org
GNU General Public License v2.0
50 stars 26 forks source link

vips OpenShift Docker demo #824

Closed ptamarit closed 5 months ago

ptamarit commented 5 months ago

Fixes #821 Fixes #822

Demo celery task locally

This pull request creates a demo Celery task generating a Tiled Pyramid TIFF every 10 seconds.

When executed locally:

Demo celery task on Docker image used in deployed environments

This pull request also demonstrates that that the vips library can be installed in the AlmaLinux-based Docker image used for Zenodo RDM in production.

By running:

docker compose -f docker-compose.full.yml build
docker compose -f docker-compose.full.yml up

One will see in the logs every 10 seconds a successful image generation:

worker-1                 | [2024-04-09 15:59:33,403: INFO/MainProcess] Task zenodo_rdm.iiif.tasks.pyvips_process[c721128d-8be4-435f-9c59-5453b241622c] received
worker-1                 | [2024-04-09 15:59:33,409: INFO/ForkPoolWorker-7] VIPS: vips__open_image_write: opening with O_TMPFILE
worker-1                 | [2024-04-09 15:59:33,409: INFO/ForkPoolWorker-7] VIPS: vips__open_image_write: O_TMPFILE failed!
worker-1                 | [2024-04-09 15:59:33,409: INFO/ForkPoolWorker-7] VIPS: vips__open_image_write: simple open
worker-1                 | [2024-04-09 15:59:33,409: INFO/ForkPoolWorker-7] VIPS: vips__open_image_write: opening with O_TMPFILE
worker-1                 | [2024-04-09 15:59:33,409: INFO/ForkPoolWorker-7] VIPS: vips__open_image_write: O_TMPFILE failed!
worker-1                 | [2024-04-09 15:59:33,410: INFO/ForkPoolWorker-7] VIPS: vips__open_image_write: simple open
worker-1                 | [2024-04-09 15:59:33,412: INFO/ForkPoolWorker-7] VIPS: threadpool completed with 7 workers
worker-1                 | [2024-04-09 15:59:33,416: INFO/ForkPoolWorker-7] VIPS: threadpool completed with 7 workers
worker-1                 | [2024-04-09 15:59:33,418: INFO/ForkPoolWorker-7] VIPS: threadpool completed with 7 workers
worker-1                 | [2024-04-09 15:59:33,420: INFO/ForkPoolWorker-7] VIPS: threadpool completed with 4 workers
worker-1                 | [2024-04-09 15:59:33,421: INFO/ForkPoolWorker-7] VIPS: threadpool completed with 7 workers
worker-1                 | [2024-04-09 15:59:33,423: INFO/ForkPoolWorker-7] VIPS: threadpool completed with 7 workers
worker-1                 | [2024-04-09 15:59:33,425: INFO/ForkPoolWorker-7] VIPS: threadpool completed with 7 workers
worker-1                 | [2024-04-09 15:59:33,429: INFO/ForkPoolWorker-7] Task zenodo_rdm.iiif.tasks.pyvips_process[c721128d-8be4-435f-9c59-5453b241622c] succeeded in 0.02439290899928892s: None

Demo celery task on deployed environment

:warning: I did not deploy this to any environment yet. :warning: Not sure how to do it without merging to master, and not sure if there is any added value.

Where should things go

For now, I've put everything in Zenodo RDM, but it could potentially go to Invenio instead. If we decide that this should go in Invenio, we will need to update the documentation to mention that vips (aka libvips) is required, and we will also need to change the invenio-cli check-requirements command (similar to what is done for ImageMagick).

ptamarit commented 5 months ago

Closed since integrated via other pull requests.