Según la referencia docker-compose y docker run, el user
La opción establece la identificación del usuario (y la identificación del grupo) del proceso que se ejecuta en el contenedor. Si establece esto en 1000:1000
, su servidor web ya no puede vincularse al puerto 80. La vinculación a un puerto por debajo de 1024 requiere permisos de raíz. Esto significa que debe eliminar el user: 1000:1000
agregado declaración de nuevo.
Para resolver el problema de permisos con el volumen compartido, debe cambiar la propiedad del directorio. Ejecute chown 1000:1000 /path/to/volume
. Esto se puede ejecutar dentro del contenedor o directamente en el sistema host. El cambio es persistente y efectivo de inmediato (no es necesario reiniciar el contenedor).
En general, creo que el volumen debería estar en un subdirectorio, por ejemplo,
volumes:
- ./public:/var/www/html
Asegúrate de que el usuario correcto posee ./public
. Si inicia el contenedor y el directorio no existe, docker lo crea por usted. En este caso, el directorio es propiedad de root
y debe cambiar la propiedad manualmente como se explicó anteriormente.
Alternativamente, puede ejecutar el servidor web como un usuario sin privilegios (user: 1000:1000
), deje que el servidor escuche en el puerto 8080 y cambie el enrutamiento a
ports:
- "8080:8080"