2017-01-10 7 views
0

IOSプッシュ通知を送信するために、私のプロジェクトで指定されたリビジョンのgithub.com/sideshow/apns2を使用します。 go 1.7.4はドッカーコンテナの中にあり、私はそこでアプリケーションをコンパイルし、バイナリをホストマシンにプルしました。ホスト上でバイナリを実行すると、次のエラーがスローされます。コンパイル済みのgolangスクリプトを実行するとエラーが発生する

Error Message: Post https://api.push.apple.com/3/device/{device_token}: dial tcp: lookup api.push.apple.com on 127.0.1.1:53: read udp 127.0.0.1:33891->127.0.1.1:53: i/o timeout 

ドッキングステーションの内部は期待どおりに動作します。ここ

は、コードの一部です:解像度

import (
    "os" 
    "strings" 
    apns "github.com/sideshow/apns2" 
    "github.com/sideshow/apns2/token" 
) 

var ApnsClient *apns.Client 

authKey, err := token.AuthKeyFromBytes([]byte(strings.Replace(os.Getenv("APNS_AUTH_KEY"), "\\n", "\n", -1))) 
if err != nil { 
    return err 
} 

Token := &token.Token{ 
    AuthKey: authKey, 
    KeyID: os.Getenv("APNS_KEY_ID"), 
    TeamID: os.Getenv("APNS_TEAM_ID"), 
} 

if os.Getenv("APNS_PRODUCTION") == "1" { 
    ApnsClient = apns.NewTokenClient(Token).Production() 
} else { 
    ApnsClient = apns.NewTokenClient(Token).Development() 
} 

notification := &apns.Notification{ 
    Payload: {payload}, 
    Topic: {bundle id}, 
    DeviceToken: {device_token} 
} 

res, err := ApnsClient.Push(notification) 

HTTPステータスは、この問題を解決する方法200の

任意のアイデアですか?

+0

ホストマシン上に構築すると機能しますか? – JimB

+0

あなたのDNS解像度は、ホスト上よりもドッカー内でうまく動作するようです。 DockerはデフォルトでGoogle DNS(8.8.8.8)を使用します。あなたのホストをチェックしてください。 – user2105103

答えて

0

あなたのDNS解決があなたの行く実行可能に狂ったようにはコンパイルされているようだ:127.0.0.1:33891->127.0.1.1:53

何をここで見ることはポート結合ドッキングウィンドウのあなたにありますローカルホスト-dnsサーバ。これはホスト上では機能しませんが、この "ルート"をgo-executableにコンパイルすることも意味をなさないでしょう。

おそらく、私は本当にここで推測することはできません、DNSサーバーへの接続のために、APPに静的な接続文字列をコンパイルしている。

関連する問題