2016-07-07 4 views
4

Docker 컨테이너의 node.js 앱에서 firebase를 쿼리하려고합니다. 로컬에서는 작동하지만 컨테이너에서는 작동하지 않습니다. 443 번 포트가 열려 있고 Google에 요청을 잘 보낼 수 있습니다. 어떤 이유로 든 Docker 컨테이너에서 돌아 오는 응답을 얻지 못합니다. 웹 소켓이있는 것 같아.Docker의 Firebase에서 응답이 없습니다

내 포트는 다음과 같습니다 0.0.0.0:443->443/tcp,

그리고 내 고정 표시기 시스템 로그에 0.0.0.0:8080->8080/tcp : 가 : 172.18.0.3에서 보낸 예기치 않은 TCP 패킷을 떨어 뜨리고 : 33288 ~ 216.58.210.173:443 (유효한 출처 = 192.168.65.2, 0.0.0.0)

시도해 볼 아이디어가 있습니까? 내 경우

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 

답변

2

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

그리고 내 고정 표시기 - compose.yml 문제는 serviceAccount.privateKey이 환경 변수를 사용하여 설정 한 것이 었습니다. 해당 환경 변수의 값은 여러 줄 문자열이며 그 문제를 일으키는 것입니다. 이 문제를 해결하기 위해 serviceAccount이 올바르게 구성되었는지 다시 확인하십시오.

편집 오늘 다시 같은 문제가 있었다. 해결책은 Docker 컨테이너의 시간이 잘못 되었기 때문에 (며칠간) NTP 서버와 시간을 동기화하는 것이 었습니다.

+0

노드/Firebase 컨테이너 용 Docker 이미지를 만든 경우 궁금한 점이 있습니까? – Ginfuru

+1

@Ginfuru 공식 노드 고정 이미지를 사용했습니다. – Korneel