Drone で自動デプロイが急にできなくなった話(2016/10/28)

こんにちは yoshi です。
普段 Drone.io を使っていて、master で git push をすると、

テスト -> ビルド -> イメージのアップ -> コンテナーの削除、再構築

をやってくれます。全部自動です。楽チンです。

Drone io: https://drone.io/

そんな楽チンな drone さんが、急に動かなくなっちゃったのです。

こんなエラー

Web サービスをデプロイしたとき

# drone のlogを見ています

$ /usr/bin/docker -d
Error response from daemon: no successful auth challenge for https://asia.gcr.io/v2/ - errors: [Get https://asia.gcr.io/v2/token?account=_json_key&service=asia.gcr.io: dial tcp [2404:6800:4008:c07::52]:443: network is unreachable]  
Login failed.  
[info] build failed (exit code 1)

Api をデプロイしたとき

# drone のlogを見ています

Sending build context to Docker daemon 109.2 MB  
Sending build context to Docker daemon 109.2 MB

Step 0 : FROM golang  
Pulling repository docker.io/library/golang  
Get https://registry-1.docker.io/v1/repositories/library/golang/tags/latest: dial tcp: lookup registry-1.docker.io: no such host  
[info] build failed (exit code 1)

no such hostlogin failedと言われましても、よく分からない。というわけで結構調べましたが、解決手段は見つからず。
おそらく、DNSの問題であろうとなったので、とりあえず再起動をしてみることにしました。

1, Google Compute Engine の再起動
2, Docker Container の再起動

実はこのDroneはGoogle Compute Engineのインスタンスにdockerを動かしてその中でアプリが動くような仕組みになっています。

「1, Google Compute Engine の再起動」 は何も変わらず失敗。

「2, Docker Container の再起動」はまず、 sudo service docker restartとしてみると、containerが落ちるので、docker-compose startでサービスを起動させると、きちんと立ち上がりサービスが正常に動き始めました。

このエラーはなんだったのか

おそらく偶然DNSかportかネットワークかが一時的に壊れて、再起動することによって元の状態に LINK することができたのだと思います。(詳しい方教えてください。。。)

パソコンが不調だったら再起動。
Dockerが不調だったら再構築。

教訓です。