For anyone following this hitting an error like:
SQLSTATE[HY000]: General error: 4047 InnoDB refuses to write tables with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE.
… This is due to an issue with new versions of MariaDB. Full details can be found in this thread.
The solution is to add the following to the mariadb portion of your docker-compose.yml:
command: ['--innodb_read_only_compressed=OFF']
For example:
mariadb:
image: mariadb
container_name: nextcloud-mariadb
restart: unless-stopped
command: ['--innodb_read_only_compressed=OFF']
volumes:
- ${NEXTCLOUD_ROOT}/mariadb:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
networks:
- nextcloud