testcontainers / testcontainers/testcontainers-java
Starting docker-compose test containers as non-root user
Personne n'a encore pris cette issue.
- Langage dominant
- Java
- Étoiles
- 8.7k
- Forks
- 1.9k
- Merge moyen
- 2 j 17 h
- PR mergées (30 j)
- 9
Description
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?
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par la configuration de DockerComposeContainer à l’aide de src/main/docker/docker-compose.yml, en incluant withLocalCompose(true) et withEnv("CURRENT_USER", System.getProperty("user.name")). Reproduisez l’échec du test basé sur Compose et examinez comment sont gérés l’utilisateur du service Compose et le volume ./target/ monté. Le travail est terminé lorsque le service peut écrire les fichiers montés avec les permissions de l’utilisateur actuel du système d’exploitation, sans erreur de recherche dans passwd.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- docker, docker-compose, java
- Domaine
- devops, testing
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100