nehme ich auf einer Host-Maschine bin mit Docker-compose läuft 2 Container/Dienstleistungen:Connect Docker-Container: Frontend zu GraphQL Backend über Docker Compose auf demselben Host
- Backend graphql (Ports: 8000: 8000)
- Frontend reagieren (Ports: 8081: 8081)
im Frontend Container, wo mein reagieren + apollo Code lebt, ich diese const setzen müssen:
// frontend container code
export const APOLLO = {
uri: 'http://0.0.0.0:8000/graphql' // << not working, what to use here?
};
Der URI-Wert ist jedoch nicht in der Lage, eine erfolgreiche Verbindung zum Backend-Endpunkt von graphql herzustellen. Ich erhalte Fehler wie Error Network error: request to http://0.0.0.0:8000/graphql failed, reason: connect ECONNREFUSED 0.0.0.0:8000
Die Container funktionieren gut auf eigene Faust. Ich bin in der Lage, zu http://0.0.0.0:8000
, http://0.0.0.0:8000/graphql
, http://0.0.0.0:8081
zu navigieren, um mit ihnen einzeln zu interagieren. Ich bin auch in der Lage, jeden Container zu betreten und den anderen über ihre Service-Namensräume mit ping backend
oder ping frontend
zu erreichen.
Wenn ich jedoch uri: 'http://backend:8000/graphql'
oder uri: 'http://backend/graphql'
in meinem Code, bekomme ich den Fehler Error Network error: only absolute urls are supported
.
Unter docker inspect backend
erhalte ich die IP-Adresse des Back-End-Containers wie folgt: '172.18.0.5'
. Was ich versuchte, in die URI als uri: 'http://172.18.0.5/graphql'
zu stecken, aber ich bekomme Error Network error: Network request failed with status 403 - "Forbidden"
Wie sollte ich Backend Docker Container an das Frontend innerhalb des Codes in diesen Szenarien verbunden?
Danke!
Fügen Sie die 'docker-compose.yml', die Docker-Version, das Host-Betriebssystem und alle unterstützenden externen Dateien hinzu, damit wir sie reproduzieren können. –