Si tu uid
en el host (id -u
) no es lo mismo que el uid
del usuario en el contenedor docker (a menudo "docker"), entonces puede tener este problema. Puedes probar:
- Hacer que los UID sean iguales entre su usuario y el usuario en el contenedor acoplable.
- Configurar los permisos de grupo en el directorio para que se pueda escribir en un grupo al que pertenezcan usted y Docker.
- También puedes usar la opción nuclear:
chmod a+rwx -R project-dir/
La opción nuclear hará que tu git
el espacio de trabajo está sucio, lo que te molestará mucho, por lo que no es la mejor solución a largo plazo. Aunque detiene el sangrado.
Para comprender mejor el problema, puede encontrar estos útiles:
- https://github.com/docker/docker/issues/7906
- https://github.com/docker/docker/issues/7198
Nueva respuesta:
Esta pregunta parece tener mucho tráfico y ahora hay una mejor solución disponible:fixuid, como su nombre indica, es un ejecutable mágico para cambiar el uid y gid del usuario del contenedor en el inicio del contenedor (usando -u alguien:alguien).
Para obtener una explicación más detallada, consulte:https://boxboat.com/2017/07/25/fixuid-change-docker-container-uid-gid/
Respuesta anterior:
A partir de la versión 1.7 de docker, tiene la opción de montar un directorio de host con permisos para un contenedor usando las banderas :Z o :z así:
docker run -v ./api:/usr/src/app:Z
- :z:agregará permisos a todos los contenedores usando la etiqueta 'svirt_sandbox_file_t'
- :Z:agregará permisos solo a la etiqueta del contenedor actual
A partir de docker-compose v1.4.0, puede usarlo en docker compose así:
volumes:
- ./api:/usr/src/app:Z
Aunque debería agregar que todavía tengo algunos problemas con esto (consulte Agregar permisos al directorio de host con docker-compose).
Referencias:
El uso de volúmenes con Docker puede causar problemas con SELinux - http://www.projectatomic.io/blog/2015/06/using-volumes-with-docker-can-cause-problems-with-selinux/
Guía del usuario de Docker:https://docs.docker.com/engine/userguide/dockervolumes/#volume-labels
Notas de la versión de Docker-compose para v1.4.0:https://github.com/docker/compose/releases/tag/1.4.0