¿Cómo monto un volumen en la ventana acoplable para que los archivos no sean propiedad de root?

¿Cómo monto un volumen en la ventana acoplable para que los archivos no sean propiedad de root?

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

información relacionada