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の
任意のアイデアですか?
ホストマシン上に構築すると機能しますか? – JimB
あなたのDNS解像度は、ホスト上よりもドッカー内でうまく動作するようです。 DockerはデフォルトでGoogle DNS(8.8.8.8)を使用します。あなたのホストをチェックしてください。 – user2105103