nextcloud / docker

⛴ Docker image of Nextcloud
https://hub.docker.com/_/nextcloud/
GNU Affero General Public License v3.0
5.81k stars 1.8k forks source link

Build images with AVIF support #1959

Open aentwist opened 1 year ago

aentwist commented 1 year ago

Related to https://github.com/juliushaertl/nextcloud-docker-dev/issues/177

User Story

I am considering working on adding AVIF preview support to Nextcloud https://github.com/nextcloud/server/issues/13552. I'd like to start the discussion with getting AVIF into the images.

Proposed Solution

Install AVIF in the images that have a PHP GD version that supports it.

Requirements should just be:

Alternative Considerations

aentwist commented 1 year ago

The GD extension in PHP 8.1 and later supports AVIF image format

GD extension requires libavif version 0.8.2 or higher.

https://php.watch/versions/8.1/gd-avif

I see that we are currently building images as follows

However,

Nextcloud 24 is the first major Nextcloud release to work with PHP8.1.

https://docs.nextcloud.com/server/latest/developer_manual/app_publishing_maintenance/app_upgrade_guide/upgrade_to_24.html#php8-1

Similarly why is 26 not on 8.2. This situation is going to repeat itself.

In this release support for PHP8.2 was added.

https://docs.nextcloud.com/server/latest/developer_manual/app_publishing_maintenance/app_upgrade_guide/upgrade_to_26.html#php8-2

Mentioned in https://github.com/nextcloud/docker/issues/1950. Is there some reason we are not bumping the versions?

What implications does this have? (Pretty sure the Dockerfile templates are common for 24, 25, 26 right?)

aentwist commented 1 year ago

libaom-dev libdav1d-dev appear to both be for AV1 video. Don't think we need these, although they might be required as peer deps for specific functionality?

J0WI commented 1 year ago

https://docs.nextcloud.com/server/latest/admin_manual/installation/system_requirements.html is the source of truth for the recommend PHP versions.

aentwist commented 1 year ago

libaom-dev libdav1d-dev appear to both be for AV1 video. Don't think we need these

We need these.

See https://github.com/juliushaertl/nextcloud-docker-dev/issues/182