testcontainers / testcontainers/testcontainers-java
InternalCommandPortListeningCheck always fails for containers built without `/bin/sh`
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
Relates to #2984
I'm surprised we've not come across this earlier, but the default TCP port listening detector InternalCommandPortListeningCheck does not work for containers that do not have /bin/sh included.
This predominantly affects images built upon scratch.
The workaround/solution is to use a more application specific WaitStrategy - e.g. an HTTP wait strategy.
However the log messages don't make this easy to realise.
Given that we do both the internal and external port checks for a good reason, I don't think we can just rely on the external port check. Still perhaps we can raise a very specific error message if /bin/sh is not available inside the container.
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 InternalCommandPortListeningCheck et suivez le chemin des logs et des erreurs utilisé lorsqu’un conteneur ne possède pas /bin/sh. Reproduisez le comportement avec une image construite depuis scratch, puis faites en sorte que l’échec identifie clairement le shell manquant et la stratégie d’attente affectée.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- docker, java
- Domaine
- testing
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100