Node Container kann nicht auf Redis container zugreifen

  • Hi,


    ich bin langsam am verzweifeln. Ich habe eine funktionierende Node-Umgebung mit angebundener MariaDB und möchte dieses Setup jetzt um eine REDIS Instanz erweitern. Leider bekomme ich es nicht hin, das die node Applikation mit der redis Anwendung sprechen kann.


    Hier die Fehlermeldung der App:

    Code
    Error: getaddrinfo ENOTFOUND redis
        at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:71:26) {
      errno: -3008,
      code: 'ENOTFOUND',
      syscall: 'getaddrinfo',
      hostname: 'redis'
    }


    Die Node Anwendung hat folgende Ports-Einstellung: 443/tcp, 0.0.0.0:8000->8000/tcp

    Die von Redis einfach nur 6379/tcp


    Die node Anwendung stellt die Verbindung zu REdis mittels folgendem Code her:

    Code
    const redisClient = createClient({socket: {port: 6379, host: 'redis', url: "redis://redis:6379"}, legacyMode: true})

    Die Parameter habe ich bereits in allen möglichen Kombinationen ausprobiert.



    Beide Container laufen über den NAT Modus und sind im gleichen Container-Network.


    Über Hilfe wäre ich wirklich Dankbar, da ich mittlerweile nicht mehr weiß, was ich noch probieren soll.


    - Alex

  • axl77

    Hat den Titel des Themas von „Not able to connect to Redis from node container“ zu „Node Container kann nicht auf Redis container zugreifen“ geändert.
  • Hier mal eine vorläufige Antwort. Ich bekomme es nicht hin, den Container über seinen Namen "redis" anzusprechen. Was aber geht, ist die über den Network-Mode NAT zugewiesene IP-Adresse anzusprechen. Der Code zum Aufbauen der Verbindung zu Redis ist dann wie folgt:


    Code
    const redisClient = createClient(url: "redis://[IP-ADRESSE]:6379"}, legacyMode: true})


    Keine perfekte Lösung. Ich bräuchte jetzt also nur noch einen konkreten Tipp, warum der Host-name "redis" nicht gefunden wird.