Panoramica
Esamineremo i passaggi su come configurare Nextcloud con Redis utilizzando Docker. Per questo processo utilizzeremo Docker per comporre e creare uno stack per distribuire contemporaneamente il container Nextcloud Docker con MariaDB e Redis tutti insieme.
Requisiti per configurare Nextcloud con Redis:
– Docker installato e in esecuzione sul server host (Installa Docker)
– Docker Compose installato (Installa Docker Compose)
Cos'è Redis e perché si consiglia di implementarlo con Nextcloud
Redis è un server cache di oggetti open source che può essere utilizzato come cache di database per migliorare le prestazioni del database. Per impostazione predefinita Nextcloud non ha la cache del database (può essere configurata però) e senza la cache del database, le prestazioni di Nextcloud possono diminuire (essere molto lente in altre parole) ma quando Redis viene aggiunto al gioco, può migliorare drasticamente le prestazioni di Nextcloud. Redis ha anche un contenitore Docker ufficiale, che useremo in questo file di composizione Docker.
Configura Nextcloud con Redis utilizzando Docker
Nel paragrafo seguente, qui viene fornita la configurazione di composizione Docker e tratteremo la configurazione che cosa fa:
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
L'approccio che stiamo utilizzando per distribuire i contenitori è che stiamo specificando ogni contenitore come servizio e ogni servizio avrà il proprio volume di dati montato sulla macchina host. Questo metodo ci consente di collegare più facilmente i contenitori e fare in modo che alcuni contenitori dipendano da altri per funzionare correttamente.
Panoramica della finestra mobile per comporre il file yaml:
- versione:'3' // Versione Docker Componi
- volumi:// definendo quali contenitori avranno i volumi montati
- nextcloud:
- db:
- servizi:// definire quali contenitori sono servizi
- db:// servizio database per nextcloud
- immagine:mariadb // Docker ufficiale del server mariadb
- riavvia:sempre // argomento per riavviare il contenitore sempre su qualsiasi tipo di problema
- comando:–transaction-isolation=READ-COMMITTED –binlog-format=ROW –innodb-file-per-table=1 –skip-innodb-read-only-compressed // comando da eseguire su MariaDB per configurare il formato della tabella del database. Altrimenti potresti riscontrare che Inno_DB si rifiuta di scrivere un errore
- volumi:// db:/var/lib/mysql
- ambiente:// Variabili d'ambiente in cui specifichiamo le credenziali del database
- – MYSQL_ROOT_PASSWORD=qualchepasswordroot
- – MYSQL_PASSWORD=somemysqlpassword
- – MYSQL_DATABASE=db
- – MYSQL_USER=mysqluser
- redis:// servizio redis definito
- immagine:redis // Immagine ufficiale Redis Docker
- riavvio:sempre // argomento per riavviare il contenitore sempre su qualsiasi tipo di problema
- comando:redis-server –requirepass someredispassword // argomento da passare al comando redis per impostare una password redis
- app:// definito nextcloud come servizio
- immagine:nextcloud // ha definito l'immagine ufficiale della finestra mobile nextcloud
- riavvio:sempre // argomento per riavviare il contenitore sempre su qualsiasi tipo di problema
- porte:– 8080:80 // argomento per impostare quali porte esporre per accedere a Nextcloud
- link:– db -redis // definito un collegamento redis e un collegamento al database per Nextcloud per utilizzare e memorizzare i dati (nel collegamento dobbiamo solo impostare il nome del servizio di database che abbiamo precedentemente impostato per il contenitore MariaDB)
- volumi:– nextcloud:/var/www/html // variabile di ambiente per impostare un volume persistente e memorizzare i dati sulla macchina host
- ambiente:// Variabili d'ambiente in cui specifichiamo le credenziali del database (queste devono corrispondere alle credenziali MariaDB di cui sopra e fornire la password redis)
- – MYSQL_PASSWORD=somemysqlpassword
- – MYSQL_DATABASE=db
- – MYSQL_USER=mysqluser
- – MYSQL_HOST=db
- – REDIS_HOST_PASSWORD=someredispassword
- dipende_da:// Variabile d'ambiente in cui specifichiamo la dipendenza per Nextcloud
- – db
- – redis
Distribuisci il file di composizione Docker
Come distribuire questo stack:
Tramite il terminale e l'editor di testo, creeremo una nuova directory in cui memorizzeremo la finestra mobile-compose-yml e in quel file incolleremo la nostra configurazione yaml. Puoi vedere nelle immagini qui sotto come ho fatto:
Nota:fai attenzione al rientro e assicurati che ogni riga sia in una posizione di rientro corretta.
Dopo aver creato il file docker-compose e salvato le modifiche in esso con la nostra configurazione yaml, per distribuire lo stack, eseguire il comando seguente mentre si trova ancora nella directory in cui si trova il nostro file docker-compose:
docker-componi -d
I risultati positivi dovrebbero assomigliare a questo:
Puoi controllare con il comando "docker ps -a" se i container sono presenti e funzionanti.
Quando hai confermato che la distribuzione è andata a buon fine, controlla nel tuo browser se puoi accedere a Nextcloud tramite l'indirizzo IP e la porta esposta. Dovresti essere in grado di vedere la pagina iniziale di Nextcloud in cui chiede di creare un account amministratore e di completare l'installazione.
Riepilogo
Per rivedere ciò che abbiamo trattato in questo post, procedi su come configurare Nextcloud con Redis utilizzando Docker. Con docker compose, abbiamo distribuito una pila di contenitori docker in un'unica distribuzione in cui abbiamo configurato per distribuire Nextcloud che utilizzerà Redis come cache di oggetti del database per il suo database MariaDB al fine di aumentare le prestazioni di Nextcloud. Per chiarire anche che questo non è un metodo standard, è solo uno dei tanti modi per creare questo stack Docker e connettere questi servizi e trovo che questo sia uno dei metodi più semplici per scrivere una composizione Docker per questa configurazione.
Grazie per il tuo tempo...