Docker中的Firebase没有回应

时间:2016-07-07 18:12:24

标签: docker firebase firebase-realtime-database docker-compose

我试图从Docker容器中的node.js应用程序查询firebase。它在本地工作,但不在容器中。我打开端口443,我可以请求谷歌好。出于某种原因,我从来没有得到过在Docker容器中运行的响应。我怀疑它是websockets的东西。

我的端口是:0.0.0.0:443-> 443 / tcp,0.0.0.0:8080-> 8080 / tcp

在我的docker syslog中: :丢弃从172.18.0.3:33288发送到216.58.210.173:443的意外TCP数据包(有效来源= 192.168.65.2,0.0.0.0)

关于尝试什么的想法?

  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);
  });

我的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

1 个答案:

答案 0 :(得分:2)

在我的情况下,问题是serviceAccount.privateKey是使用环境变量设置的。该环境变量的值是一个多行字符串,这导致了问题。因此请仔细检查serviceAccount是否已正确配置以解决此问题。

修改

今天我又遇到了同样的问题。解决方案是将时间与NTP服务器同步,因为Docker容器中的时间错误(休息几天)。