Podle odkazu na docker-compose a docker run, user
volba nastavuje ID uživatele (a ID skupiny) procesu spuštěného v kontejneru. Pokud toto nastavíte na 1000:1000
, váš webový server se již nemůže vázat na port 80. Vazba na port pod 1024 vyžaduje oprávnění root. To znamená, že byste měli odstranit přidaný user: 1000:1000
znovu prohlášení.
Chcete-li vyřešit problém s oprávněními ke sdílenému svazku, musíte změnit vlastnictví adresáře. Spusťte chown 1000:1000 /path/to/volume
. To lze provést uvnitř kontejneru nebo přímo v hostitelském systému. Změna je trvalá a platí okamžitě (není potřeba restartovat kontejner).
Obecně si myslím, že svazek by měl být v podadresáři, např.
volumes:
- ./public:/var/www/html
Ujistěte se, že správný uživatel vlastní ./public
. Pokud spustíte kontejner a adresář neexistuje, docker jej vytvoří za vás. V tomto případě je adresář ve vlastnictví root
a musíte změnit vlastnictví ručně, jak je vysvětleno výše.
Případně můžete webový server spustit jako neprivilegovaný uživatel (user: 1000:1000
), nechte server naslouchat na portu 8080 a změňte směrování na
ports:
- "8080:8080"