Přehled
Projdeme si kroky, jak nastavit Nextcloud s Redis pomocí Dockeru. Pro tento proces použijeme Docker compose and build stack pro okamžité nasazení Nextcloud Docker kontejneru s MariaDB a Redis dohromady.
Požadavky na nastavení Nextcloud s Redis:
– Docker nainstalován a spuštěn na hostitelském serveru (Instalovat Docker)
– Docker compose nainstalován (Install Docker Compose)
Co je Redis a proč se doporučuje nasadit jej s Nextcloud
Redis je open source server mezipaměti objektů, který lze použít jako mezipaměť databáze za účelem zlepšení výkonu databáze. Ve výchozím nastavení Nextcloud nemá mezipaměť databáze (lze však nakonfigurovat) a bez mezipaměti databáze se výkon Nextcloud může snižovat (jinými slovy být opravdu pomalý), ale když je do hry přidán Redis, může výrazně zlepšit výkon Nextcloud. Redis má také oficiální kontejner Docker, který budeme používat v tomto souboru pro psaní dockeru.
Nastavte Nextcloud s Redis pomocí Dockeru
V následujícím odstavci je zde uvedena konfigurace Docker compose a my se budeme zabývat konfigurací, co dělá:
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
Přístup, který používáme k nasazení kontejnerů, spočívá v tom, že každý kontejner specifikujeme jako službu a každá služba bude mít svůj vlastní připojený objem dat na hostitelském počítači. Tato metoda nám umožňuje snadněji spojovat kontejnery a zajistit, aby některé kontejnery správně fungovaly na jiných.
Přehled souboru yaml pro vytvoření ukotvitelného panelu:
- verze:„3“ // Verze pro psaní Docker
- objemy:// definování, které kontejnery budou mít připojené objemy
- nextcloud:
- db:
- služby:// definování, které kontejnery jsou službami
- db:// databázová služba pro nextcloud
- image:mariadb // Oficiální docker serveru mariadb
- restart:vždy // argument pro restart kontejneru vždy při jakémkoli druhu problému
- příkaz:–transaction-isolation=READ-COMMITTED –binlog-format=ROW –innodb-file-per-table=1 –skip-innodb-read-only-compressed // příkaz ke spuštění na MariaDB pro konfiguraci formátu databázové tabulky. Jinak se může stát, že Inno_DB odmítne napsat chybu
- svazky:// db:/var/lib/mysql
- prostředí:// Proměnné prostředí, kde zadáváme přihlašovací údaje k databázi
- – MYSQL_ROOT_PASSWORD=somerootpassword
- – MYSQL_PASSWORD=somemysqlpassword
- – MYSQL_DATABASE=db
- – MYSQL_USER=mysqluser
- redis:// definována služba redis
- obrázek:redis // Oficiální obrázek Redis Docker
- restart:vždy // argument pro restart kontejneru vždy při jakémkoli druhu problému
- příkaz:redis-server –requirepass somereddispassword // argument pro předání redis příkazu k nastavení hesla redis
- aplikace:// definuje nextcloud jako službu
- obrázek:nextcloud // definoval oficiální image dockeru nextcloud
- restart:vždy // argument pro restart kontejneru vždy při jakémkoli druhu problému
- porty:– 8080:80 // argument pro nastavení, jaké porty mají být vystaveny pro přístup k Nextcloud
- odkazy:– db -redis // definoval odkaz redis a odkaz na databázi pro Nextcloud pro použití a ukládání dat (v odkazu stačí nastavit název databázové služby, který jsme dříve nastavili pro kontejner MariaDB)
- svazky:– nextcloud:/var/www/html // proměnná prostředí pro nastavení trvalého svazku a ukládání dat na hostitelském počítači
- prostředí:// Proměnné prostředí, kde zadáváme přihlašovací údaje databáze (tyto musí odpovídat přihlašovacím údajům MariaDB shora a poskytovat heslo redis)
- – MYSQL_PASSWORD=somemysqlpassword
- – MYSQL_DATABASE=db
- – MYSQL_USER=mysqluser
- – MYSQL_HOST=db
- – REDIS_HOST_PASSWORD=someredespassword
- depends_on:// Proměnná prostředí, kde určujeme závislost pro Nextcloud
- – db
- – redis
Nasadit soubor pro psaní Dockeru
Jak nasadit tento zásobník:
Přes terminál a textový editor vytvoříme nový adresář, do kterého uložíme docker-compose-yml a do tohoto souboru vložíme naši konfiguraci yaml. Jak se mi to povedlo, můžete vidět na obrázcích níže:
Poznámka – dbejte na odsazení a ujistěte se, že každý řádek je ve správné poloze odsazení.
Jakmile jsme vytvořili soubor docker-compose a uložili v něm změny pomocí naší konfigurace yaml, pro nasazení zásobníku spusťte následující příkaz, zatímco jste stále umístěni v adresáři, kde je umístěn náš soubor docker-compose:
docker-compose up -d
Úspěšné výsledky by měly vypadat takto:
Můžete to zkontrolovat příkazem “docker ps -a“ pokud jsou kontejnery přítomny a běží.
Když potvrdíte, že nasazení bylo úspěšné, znovu zkontrolujte v prohlížeči, zda máte přístup k Nextcloud přes IP adresu a odhalený port. Měli byste vidět úvodní stránku Nextcloudu, kde požaduje vytvoření účtu správce a dokončení instalace.
Shrnutí
Chcete-li zkontrolovat, co jsme v tomto příspěvku pokryli, zpracujte postup, jak nastavit Nextcloud s Redis pomocí Docker. S docker compose jsme nasadili zásobník dockerových kontejnerů v jediném nasazení, ve kterém jsme nakonfigurovali nasazení Nextcloud, který bude používat Redis jako mezipaměť databázových objektů pro svou databázi MariaDB, aby se zvýšil výkon Nextcloud. Abychom také objasnili, že se nejedná o standardní metodu, je to jen jeden z mnoha způsobů, jak vytvořit tento zásobník Docker a propojit tyto služby, a považuji to za jednu z nejjednodušších metod, jak napsat zprávu dockeru pro toto nastavení.
Děkuji za váš čas…