Errata und Updates zu »Docker« (3. Auflage)

Diese Seite enthält Updates und Errata zum Buch »Docker« (3. Auflage 2021).

S. 69, Kasten »Volumes versus Mounts«

Volumes werden als bind-Mounts realisiert. Der Typ des Mounts im Kommando am Ende des Kastens muss also bind lauten, nicht volume:

--mount type=bind,source=,destination=
S. 73 phpMyAdmin-Login

Der erste Absatz auf S. 73 enthält fehlerhaften Text. Der Login in phpMyAdmin erfolgt — den Angaben auf S. 72 folgend — mit wpuser und geheim. Ein root-Login ist unmöglich, weil das root-Passwort nicht bekannt ist.

Sollten Sie in phpMyAdmin einen root-Login wünschen, müssen Sie beim Erzeugen des MariaDB-Containers (Kommando S. 72) das gewünschte root-Passwort explizit festlegen. Dazu übergeben Sie statt

-e MYSQL_RANDOM_ROOT_PASSWORD=1

die Option:

-e MYSQL_ROOT_PASSWORD=ganzgeheim
S. 125 bis 128 zum Pull-Limit und zum Free-Account

Gerade als das Buch in Druck ging, hat Docker sein Subscriptions-Angebot umgestaltet. Das Free-Angebot heißt jetzt »Personal«. Nach wie vor kann Docker ohne jede Registrierung verwendet werden, wobei die Anzahl der Pull-Requests auf 100 pro sechs Stunden limitiert ist. Das Programm Docker Desktop darf ohne Bezahlung allerdings nur noch in kleinen Firmen (weniger als 250 Mitarbeiter bzw. weniger als 10 Millionen Dollar Jahresumsatz) genutzt werden. Diese Einschränkung ist neu seit Anfang September 2021.

Bei den zahlungspflichtigen Angeboten ist zu »Pro« und »Team« das neue Modell »Business« hinzugekommen.

Details: <https://www.docker.com/pricing> sowie golem.de

S. 196, Port für Nginx-Proxy

Der Port für die Weiterleitung auf den API-Service muss 80 lauten, wenn Sie — wie wir es gemacht haben — das Standard-nginx-Image dafür verwenden. Die Zeile

proxy_pass http://dockerbuch_api_1.nginxterminator_default:3000;

muss also korrekt

proxy_pass http://dockerbuch_api_1.nginxterminator_default:80;

lauten.

S. 201 bis 203 Node.js mit Express (Generator)

Das Node.js-Modul zum Konvertieren der Sass-Stylesheets in reguläres CSS funktioniert leider mit Node.js 16 nicht mehr und wird offensichltich auch nicht mehr gewartet (letzte Änderung August 2020, Node 16 Issue auf github).

Damit Sie das Beispiel korrekt verwenden können entfernen Sie bei dem Skript-Aufruf auf Seite 202 das SASS Modul:

docker compose run -u $UID dev express --view hbs

Der zweite Absatz auf Seite 203, der die Funktionsweise von Sass-Stylesheets beschreibt ist damit natürlich hinfällig.

S. 267, Nextcloud + MariaDB

Die erst nach der Überarbeitung dieses Buchs erschienene Version 10.6 von MariaDB ist nicht mehr kompatibel zu Nextcloud. Der Grund besteht darin, dass das von Nextcloud genutzte Feature Compressed Row Format nur mehr Read-only funktioniert. Die MariaDB-Entwickler empfehlen, stattdessen Page Compression zu nutzen. Das erfordert aber in Nextcloud größere Umbauten samt Migrations-Scripts, die es so schnell nicht geben wird. Hintergründe:

  • <https://help.nextcloud.com/t/update-to-next-cloud-21-0-2-has-get-an-error/117028/22>
  • <https://github.com/nextcloud/server/issues/27085>

Die einfachste Lösung besteht darin, im Zusammenspiel mit Nextcloud nicht die neueste MariaDB-Version zu verwenden, sondern explizit 10.5. Alternativ können Sie

command: ['--innodb_read_only_compressed=OFF']

beim db Eintrag in docker-compose.yml einzubauen. (Diese Option soll in zukünftigen MariaDB-Versionen ebenfalls gestrichen werden. Aber bis es MariaDB 10.7 gibt, wird es wohl auch neue Nextcloud-Versionen geben, die wieder besser mit MariaDB zusammenspielen.)


Letzte Änderung 3.12.2021. Vielen Dank an alle Leser, die mir Feedback geben!