2016-07-07 2 views
4

Ich versuche, Firebase von einer node.js App in einem Docker-Container abzufragen. Es funktioniert lokal, aber nicht im Container. Ich habe Port 443 geöffnet und kann eine Anfrage stellen, um gut zu googeln. Aus irgendeinem Grund bekomme ich nie wieder eine Antwort im Docker-Container. Ich vermute, es ist etwas mit Websockets.Keine Antwort von Firebase in Docker

Meine Ports sind: 0.0.0.0:443->443/tcp, 0.0.0.0:8080->8080/tcp

Und in meinem Docker syslog: : unerwartetes TCP-Paket aus 172.18.0.3 gesendet dropping : 33288 bis 216.58.210.173:443 (gültige Quellen = 192.168.65.2, 0.0.0.0)

Haben Sie Ideen, was Sie ausprobieren sollten?

firebase.initializeApp({ 
    serviceAccount: firebaseKey, 
    databaseURL: 'https://my-firebase.firebaseio.com' 
    }); 
    const userId = 'xxxxxxxxxxxx'; 
    const ref = firebase.database().ref(`datasource/${userId}`) 
    .once('value').then((snapshot) => { 
    console.log(snapshot.val()); 
    return callback(null, 'ok'); 
    }, (error) => { 
    console.error(error); 
    return callback(error); 
    }); 

Und meine Docker-compose.yml

version: "2" 

services: 

    test-import: 
     build: . 
     command: npm run dev 
     volumes: 
     - .:/var/www 
     ports: 
     - "7000:8080" 
     - "443:443" 
     depends_on: 
     - mongo 
     networks: 
     - import-net 

    mongo: 
     container_name: mongo 
     image: mongo 
     networks: 
     - import-net 

networks: 
    import-net: 
     driver: bridge 

Antwort

2

In meinem Fall war das Problem, dass serviceAccount.privateKey eingestellt wurde eine Umgebungsvariable verwenden. Der Wert dieser Umgebungsvariablen ist eine mehrzeilige Zeichenfolge, die das Problem verursacht hat. Überprüfen Sie also, ob serviceAccount korrekt konfiguriert ist, um dies zu beheben.

bearbeiten

hatte ich das gleiche Problem heute wieder. Die Lösung bestand darin, die Zeit mit einem NTP-Server zu synchronisieren, da die Zeit im Docker-Container falsch war (ein paar Tage frei).

+0

Nur neugierig, ob Sie ein Docker-Image für Ihre Node/Firebase-Container erstellt haben? – Ginfuru

+1

@Ginfuru Ich habe das offizielle Docker-Bild verwendet. – Korneel