services: nextcloud_app: image: docker.io/library/nextcloud:31.0.6 container_name: nextcloud_app depends_on: - nextcloud_db - nextcloud_valkey environment: - MYSQL_HOST=nextcloud_db:3306 - MYSQL_DATABASE=${MYSQL_DATABASE} - MYSQL_USER=${MYSQL_USER} - MYSQL_PASSWORD=${MYSQL_PASSWORD} - REDIS_HOST=nextcloud_valkey - REDIS_HOST_PORT=6379 - REDIS_HOST_PASSWORD=${VALKEY_PASSWORD} - PHP_MEMORY_LIMIT=${PHP_MEMORY_LIMIT} - PHP_UPLOAD_LIMIT=${PHP_UPLOAD_LIMIT} - APACHE_DISABLE_REWRITE_IP=${APACHE_DISABLE_REWRITE_IP} volumes: - ${APPDATA_PATH}/nextcloud/app:/var/www/html ports: - ${APP_PORT}:80 restart: unless-stopped nextcloud_db: image: docker.io/library/mariadb:11.4.7 container_name: nextcloud_db command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed environment: - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - MYSQL_DATABASE=${MYSQL_DATABASE} - MYSQL_USER=${MYSQL_USER} - MYSQL_PASSWORD=${MYSQL_PASSWORD} volumes: - ${APPDATA_PATH}/nextcloud/db:/var/lib/mysql ports: - ${DB_PORT}:3306 restart: unless-stopped nextcloud_valkey: image: docker.io/valkey/valkey:8.1.2 container_name: nextcloud_valkey command: valkey-server --requirepass ${VALKEY_PASSWORD} volumes: - ${APPDATA_PATH}/nextcloud/valkey:/data ports: - ${VALKEY_PORT}:6379 restart: unless-stopped