こんにちは 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 host
と login failed
と言われましても、よく分からない。というわけで結構調べましたが、解決手段は見つからず。
おそらく、DNSの問題であろうとなったので、とりあえず再起動をしてみることにしました。
1, Google Compute Engine の再起動
2, Docker Container の再起動
実はこのDroneはGoogle Compute Engineのインスタンスにdockerを動かしてその中でアプリが動くような仕組みになっています。
「1, Google Compute Engine の再起動」 は何も変わらず失敗。
「2, Docker Container の再起動」はまず、 service docker restart
としてみると、containerが落ちるので、docker-compose start
でサービスを起動させると、きちんと立ち上がりサービスが正常に動き始めました。
このエラーはなんだったのか
おそらく偶然DNSかportかネットワークかが一時的に壊れて、再起動することによって元の状態に LINK することができたのだと思います。(詳しい方教えてください。。。)
パソコンが不調だったら再起動。
Dockerが不調だったら再構築。
教訓です。
他にも色々なブログを書いています。
こちらから: http://blog.lesson-time.com/