testcontainers / testcontainers/testcontainers-java
Starting docker-compose test containers as non-root user
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Java
- Estrellas
- 8.7k
- Forks
- 1.9k
- Merge medio
- 2 d 17 h
- PR fusionados (30 d)
- 9
Descripción
Similar to: https://github.com/testcontainers/testcontainers-java/issues/2590
I'm trying to start our docker-compose based testcontainers tests, and pass in the local username from the running system, in order that the container can write files to mounted volumes with the correct permissions.
I tried a compose with:
version: "3.7"
services:
myservice:
image: xxx
user: ${CURRENT_USER}
...
volumes:
./target/:/target
And passed in CURRENT_USER environment variable to testcontainers using:
env = new DockerComposeContainer(new File("src/main/docker/docker-compose.yml"));
env.withLocalCompose(true);
env.withEnv("CURRENT_USER", System.getProperty("user.name"));
However, this fails with:
Cannot start service my server: unable to find user bmiddleton: no matching entries in passwd file
I presume it's looking for that user in the ryuk container, and not the OS - where the user does exist.
How can I get a testcontainers test running from a docker compose file to write its files using the current user of the operating system?
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con la configuración de DockerComposeContainer usando src/main/docker/docker-compose.yml, incluyendo withLocalCompose(true) y withEnv("CURRENT_USER", System.getProperty("user.name")). Reproduce el fallo de la prueba basada en Compose e inspecciona cómo se gestionan el usuario del servicio de Compose y el volumen montado ./target/. Se considera terminado cuando el servicio puede escribir archivos montados con los permisos del usuario actual del sistema operativo sin el error de búsqueda en passwd.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- docker, docker-compose, java
- Área
- devops, testing
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100