
Tengo un directorio en mi computadora Linux (Ubuntu 23.10) llamado:
/home/steve/foobar/foo
El directorio y todos los archivos que contiene son propiedad del usuario steve (uid 1000) y del grupo steve (gid 1000).
Quiero montarlo dentro de la ventana acoplable como /host/foo
No importa lo que intente, todos los archivos dentro de la ventana acoplable terminan siendo propiedad de root con raíz de grupo. Quiero que sean propiedad del usuario steve y del grupo steve.
Aquí está compose.yaml:
services:
pyapp:
hostname: pytest
container_name: pytest1
command: 'sleep infinity'
volumes:
- /home/steve/foobar/foo:/host/foo
build:
dockerfile: testapp.dockerfile
Y aquí está mi testapp.dockerfile
FROM ubuntu:jammy
ARG UID=1000
RUN adduser \
--disabled-password \
--gecos "" \
--home "/home/steve" \
--shell "/bin/bash" \
--uid "${UID}" \
steve
RUN mkdir -p /host/foo
RUN chown steve: /host
RUN chown steve: /host/foo
USER steve
VOLUME /host/foo
Para construir hago:
docker compose build
Para correr hago:
docker compose run
Y para obtener una línea de comando dentro de la ventana acoplable hago:
docker exec -it pytest1 /bin/bash
¿Qué cambios exactos debo hacer para que todos los archivos en /host/foo sean propiedad de steve con un grupo de steve?
Gracias.
(Si es importante, también estoy ejecutando Docker Desktop).
Respuesta1
Necesita agregar lo siguiente a su docker-compose
user: "1000:1000"
Entonces en tu caso
services:
pyapp:
hostname: pytest
container_name: pytest1
command: 'sleep infinity'
user: "1000:1000"
volumes:
- /home/steve/foobar/foo:/host/foo
build:
dockerfile: testapp.dockerfile