InetAddress does’nt resolve ip on alpine docker container
C’est un problème qu’on a rencontré quand on a voulu réduire la taille des docker en utilisant l’image Alpine comme image de base.
Symptome
Section titled “Symptome”Exception in thread "main" java.net.UnknownHostException: mysql: unknown error at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928) at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323) at java.net.InetAddress.getAllByName0(InetAddress.java:1276) at java.net.InetAddress.getAllByName(InetAddress.java:1192) at java.net.InetAddress.getAllByName(InetAddress.java:1126) at java.net.InetAddress.getByName(InetAddress.java:1076) at SomaDBTest.main(SomaDBTest.java:52)
Solution
Section titled “Solution”En gros l’image Alpine veut par défaut résoudre les noms de machine pas DNS en priorité au lieu d’utiliser d’abord les fichiers (hosts).
RUN echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf