Secondo il riferimento docker-compose e docker run, il file user
L'opzione imposta l'ID utente (e l'ID gruppo) del processo in esecuzione nel contenitore. Se lo imposti su 1000:1000
, il tuo server web non è più in grado di collegarsi alla porta 80. Il collegamento a una porta inferiore a 1024 richiede i permessi di root. Ciò significa che dovresti rimuovere il user: 1000:1000
aggiunto dichiarazione di nuovo.
Per risolvere il problema di autorizzazione con il volume condiviso, è necessario modificare la proprietà della directory. Esegui chown 1000:1000 /path/to/volume
. Questo può essere eseguito all'interno del contenitore o direttamente sul sistema host. La modifica è permanente ed effettiva immediatamente (non è richiesto il riavvio del contenitore).
In generale, penso che il volume dovrebbe trovarsi in una sottodirectory, ad es.
volumes:
- ./public:/var/www/html
Assicurati che l'utente corretto possieda ./public
. Se avvii il contenitore e la directory non esiste, docker lo crea per te. In questo caso, la directory è di proprietà di root
e devi cambiare la proprietà manualmente come spiegato sopra.
In alternativa, puoi eseguire il server web come utente senza privilegi (user: 1000:1000
), lascia che il server sia in ascolto sulla porta 8080 e cambia il routing in
ports:
- "8080:8080"