.env mit chmod 600 ist im Container nicht lesbar - Docker-Weg scheitert bei A3 #1
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Getestet mit einem frischen Clone (
82fe2d7, v0.11.1) auf einemDebian-13-Host mit Docker 29.0.0 / Compose v2.40.3, streng nach
docs/installation.mdWeg A.Was passiert
Schritt 0 der Anleitung schreibt vor:
Damit gehoert die Datei dem Host-Benutzer (z. B. UID 1000). Der Container
laeuft laut Dockerfile als
USER klima(UID 10001) und bekommt die.envper Bind-Mount hereingereicht. Owner-Rechte greifen nicht,
othershatkeine — die Datei ist im Container nicht lesbar:
Das trifft jeden, der dem Docker-Weg folgt, und zwar direkt beim ersten
Befehl, der die Konfiguration braucht (A3). Der venv-Weg ist nicht
betroffen, weil der Dienst dort als der Benutzer laeuft, dem die Datei
gehoert.
Dieselbe Falle steckt in A6 fuer
web/.env.Workaround, mit dem der Test weiterlief
Vorschlag
Der Fehlertext ist gut (kein stiller Fehlschlag), nur die Anleitung fehlt.
Eine der beiden Varianten in
docs/installation.mdaufnehmen, fuer.envund
web/.env:sudo chown 10001:10001 .envmit einem Satz, warum (Container-UID), oderdocker-compose.ymleine festeuser:-Angabe setzen, die zurHost-UID passt — dann bleibt
chmod 600ohnechownfunktionsfaehig.Die UID 10001 sollte an der Stelle ausdruecklich genannt werden; sie steht
sonst nur im Dockerfile.
Behoben in
57c395f(0.14.0).docs/installation.mdnennt jetzt in Schritt 0 das noetigesudo chown 10001 .envsamt Begruendung (Container-UID 10001,USER klimaim Dockerfile) und in A6 dasselbe fuerweb/.env. Gegen die festeuser:-Angabe im Compose entschieden: das Image legt /data mit UID 10001 an, eine Host-UID wuerde die Volume-Rechte brechen.