Resumen
Seguiremos los pasos para configurar Nextcloud con Redis usando Docker. Para este proceso, usaremos Docker compose y crearemos una pila para implementar al mismo tiempo el contenedor Nextcloud Docker con MariaDB y Redis todos juntos.
Requisitos para configurar Nextcloud con Redis:
– Docker instalado y ejecutándose en el servidor host (Instalar Docker)
– Docker compose instalado (Instalar Docker Compose)
Qué es Redis y por qué se recomienda implementarlo con Nextcloud
Redis es un servidor de caché de objetos de código abierto que se puede utilizar como caché de base de datos para mejorar el rendimiento de la base de datos. Por defecto, Nextcloud no tiene caché de base de datos (aunque se puede configurar) y sin caché de base de datos, el rendimiento de Nextcloud puede disminuir (en otras palabras, ser muy lento), pero cuando se agrega Redis al juego, puede mejorar drásticamente el rendimiento de Nextcloud. Redis también tiene un contenedor Docker oficial, que usaremos en este archivo de composición de Docker.
Configurar Nextcloud con Redis usando Docker
En el siguiente párrafo, la configuración de composición de Docker se proporciona aquí y cubriremos la configuración y lo que hace:
version: '3' volumes: nextcloud: db: services: db: image: mariadb restart: always command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed volumes: - db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=somerootpassword - MYSQL_PASSWORD=somemysqlpassword - MYSQL_DATABASE=db - MYSQL_USER=mysqluser redis: image: redis restart: always command: redis-server --requirepass someredispassword app: image: nextcloud restart: always ports: - 8080:80 links: - db - redis volumes: - nextcloud:/var/www/html environment: - MYSQL_PASSWORD=somemysqlpassword - MYSQL_DATABASE=db - MYSQL_USER=mysqluser - MYSQL_HOST=db - REDIS_HOST_PASSWORD=someredispassword depends_on: - db - redis
El enfoque que usamos para implementar los contenedores es que especificamos cada contenedor como un servicio, y cada servicio tendrá su propio volumen de datos montado en la máquina host. Este método nos permite conectar contenedores más fácilmente y hacer que unos contenedores dependan de otros para funcionar correctamente.
Descripción general del archivo docker redact yaml:
- versión:'3' // Versión de composición de Docker
- volúmenes:// definir qué contenedores tendrán volúmenes montados
- siguiente nube:
- bd:
- servicios:// definir qué contenedores son servicios
- bd:// servicio de base de datos para nextcloud
- imagen:mariadb // Docker oficial del servidor mariadb
- reiniciar:siempre // argumento para reiniciar el contenedor siempre en cualquier tipo de problema
- comando:–transaction-isolation=READ-COMMITTED –binlog-format=ROW –innodb-file-per-table=1 –skip-innodb-read-only-compressed // comando para ejecutar en MariaDB para configurar el formato de la tabla de la base de datos. De lo contrario, puede experimentar que Inno_DB se niega a escribir un error
- volúmenes:// db:/var/lib/mysql
- entorno:// Variables de entorno donde especificamos las credenciales de la base de datos
- – MYSQL_ROOT_PASSWORD=alguna contraseña raíz
- – MYSQL_PASSWORD=algunacontraseñamysql
- – MYSQL_DATABASE=db
- – MYSQL_USER=mysqluser
- redis:// servicio redis definido
- imagen:redis // Imagen oficial de Redis Docker
- reiniciar:siempre // argumento para reiniciar el contenedor siempre en cualquier tipo de problema
- comando:redis-server –requirepass someredispassword // argumento para pasar al comando redis para establecer una contraseña de redis
- aplicación:// definió nextcloud como servicio
- imagen:nextcloud // definió la imagen acoplable oficial de nextcloud
- reiniciar:siempre // argumento para reiniciar el contenedor siempre en cualquier tipo de problema
- puertos:– 8080:80 // argumento para establecer qué puertos se expondrán para acceder a Nextcloud
- enlaces:– db -redis // definimos un enlace redis y un enlace de base de datos para que Nextcloud use y almacene datos (en el enlace solo necesitamos establecer el nombre del servicio de base de datos que configuramos previamente para el contenedor MariaDB)
- volúmenes:– nextcloud:/var/www/html // variable de entorno para establecer un volumen persistente y almacenar datos en la máquina host
- entorno:// Variables de entorno donde especificamos las credenciales de la base de datos (estas deben coincidir con las credenciales de MariaDB de arriba y proporcionar la contraseña de redis)
- – MYSQL_PASSWORD=algunacontraseñamysql
- – MYSQL_DATABASE=db
- – MYSQL_USER=mysqluser
- – MYSQL_HOST=db
- – REDIS_HOST_PASSWORD=alguna contraseña
- depende_de:// Variable de entorno donde especificamos la dependencia para Nextcloud
- – base de datos
- – redis
Implementar archivo de redacción de Docker
Cómo implementar esta pila:
A través de la terminal y el editor de texto, crearemos un nuevo directorio en el que almacenaremos docker-compose-yml y en ese archivo pegaremos nuestra configuración de yaml. Puedes ver en las fotos de abajo cómo lo hice:
Nota:tenga cuidado con la sangría y asegúrese de que cada línea esté en la posición de sangría correcta.
Una vez que creamos el archivo docker-compose y guardamos los cambios en él con nuestra configuración de yaml, para implementar la pila, ejecute el siguiente comando mientras aún se encuentra en el directorio donde se encuentra nuestro archivo docker-compose:
docker-compose up -d
Los resultados exitosos deberían verse así:
Puede verificar con el comando “docker ps -a” si los contenedores están presentes y funcionando.
Cuando confirme que la implementación fue exitosa, vuelva a verificar en su navegador si puede acceder a Nextcloud a través de la dirección IP y el puerto expuesto. Debería poder ver la página de inicio de Nextcloud donde le pide que cree una cuenta de administrador y complete la instalación.
Resumen
Para revisar lo que hemos cubierto en esta publicación, procese cómo configurar Nextcloud con Redis usando Docker. Con docker compose, implementamos una pila de contenedores docker en una sola implementación en la que configuramos para implementar Nextcloud que usará Redis como caché de objetos de base de datos para su base de datos MariaDB a fin de aumentar el rendimiento de Nextcloud. Para aclarar también, este no es un método estándar, es solo una de las muchas formas de crear esta pila de Docker y conectar estos servicios, y creo que este es uno de los métodos más simples para escribir una composición de Docker para esta configuración.
Gracias por su tiempo…