Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| — |
admin_grundlagen:docker:nextcloud_mit_docker_compose [2026/01/25 13:52] (aktuell) ingo_wichmann angelegt |
||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== nextcloud mit Docker Compose ====== | ||
| + | Dafür gibt es mehrere Wege: | ||
| + | * [[https://github.com/nextcloud/all-in-one#nextcloud-all-in-one|Docker all-in-one-Image der Nextcloud GmbH]] | ||
| + | * [[https://hub.docker.com/_/nextcloud|Docker Official nextcloud Image]] | ||
| + | * ... und wahrscheinlich viele weitere Wege mehr. | ||
| + | -> Wir nutzen hier im Beispiel das "Docker Official Image", das ist aber keine Empfehlung für oder gegen dieses Image. | ||
| + | ===== Pakete ===== | ||
| + | * Alle Distributionen: ''pwgen'' | ||
| + | * ''docker-compose'' | ||
| + | | ||
| + | ===== Nextcloud Docker Compose vorbereiten ===== | ||
| + | mkdir -p /srv/docker/nextcloud/ | ||
| + | cd /srv/docker/nextcloud/ | ||
| + | MYSQL_ROOT_PASSWORD=$(pwgen 20 1) | ||
| + | MYSQL_PASSWORD=$(pwgen 20 1) | ||
| + | cat <<COMPOSE > docker-compose.yml | ||
| + | <code yaml> | ||
| + | version: '2' | ||
| + | services: | ||
| + | db: | ||
| + | image: mariadb:10.6 | ||
| + | restart: always | ||
| + | command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW | ||
| + | volumes: | ||
| + | - ./db:/var/lib/mysql | ||
| + | environment: | ||
| + | - MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD | ||
| + | - MYSQL_PASSWORD=$MYSQL_PASSWORD | ||
| + | - MYSQL_DATABASE=nextcloud | ||
| + | - MYSQL_USER=nextcloud | ||
| + | app: | ||
| + | image: nextcloud:27.1.1 | ||
| + | #image: nextcloud:27.1.6 | ||
| + | #image: nextcloud:28.0.2 | ||
| + | #image: nextcloud:latest | ||
| + | restart: always | ||
| + | ports: | ||
| + | - 8080:80 | ||
| + | links: | ||
| + | - db | ||
| + | volumes: | ||
| + | - ./nextcloud:/var/www/html | ||
| + | environment: | ||
| + | - MYSQL_PASSWORD=$MYSQL_PASSWORD | ||
| + | - MYSQL_DATABASE=nextcloud | ||
| + | - MYSQL_USER=nextcloud | ||
| + | - MYSQL_HOST=db | ||
| + | </code> | ||
| + | COMPOSE | ||
| + | | ||
| + | ===== Container starten ===== | ||
| + | |||
| + | (Mit Docker aus Debian <= 12 oder openSUE Leap <= 15.6 oder Ubuntu muss ''docker compose'' durch ''docker-compose'' ersetzt werden.) | ||
| + | |||
| + | |||
| + | docker compose up -d | ||
| + | docker compose logs -f | ||
| + | -> Nextcloud einrichten unter http://localhost:8080 | ||
| + | |||
| + | ===== Nextcloud Update ===== | ||
| + | ==== Backup mit tar ==== | ||
| + | |||
| + | -> http://localhost:8080/settings/admin/overview | ||
| + | |||
| + | Aktuellere Minor- oder Major-Version suchen: | ||
| + | curl -L -s 'https://registry.hub.docker.com/v2/repositories/library/nextcloud/tags?page_size=1024' | jq '."results"[]["name"]' | ||
| + | docker compose down | ||
| + | tar caf db-27.1.1.tar.zst db/ | ||
| + | tar caf nextcloud-27.1.1.tar.zst nextcloud/ | ||
| + | -> ''docker-compose.yml'' bearbeiten | ||
| + | docker compose up -d | ||
| + | docker compose logs -f | ||
| + | |||
| + | ==== Alternativ: backup mit btrfs snapshots ==== | ||
| + | -> http://localhost:8080/settings/admin/overview | ||
| + | |||
| + | Aktuellere Minor- oder Major-Version suchen: | ||
| + | curl -L -s 'https://registry.hub.docker.com/v2/repositories/library/nextcloud/tags?page_size=1024' | jq '."results"[]["name"]' | ||
| + | docker compose down | ||
| + | btrfs subvolume snapshot -r db db-27.1.1 | ||
| + | btrfs subvolume snapshot -r nextcloud nextcloud-27.1.1 | ||
| + | -> ''docker-compose.yml'' bearbeiten | ||
| + | docker compose up -d | ||
| + | docker compose logs -f | ||