🚀

Fly.ioでのデプロイが突然失敗したよ

2024/09/24に公開

Fly.ioで運用しているアプリのデプロイが、ある日突然できなくなりました。

$ flyctl deploy --dockerfile flyio/Dockerfile --config flyio/fly.production.toml --remote-only

Waiting for depot builder...
Waiting for depot builder...
Waiting for depot builder...
Waiting for depot builder...
Waiting for depot builder...
Waiting for depot builder...
Waiting for depot builder...
Waiting for depot builder...


...
Error: failed to fetch an image or build from source: error building: unavailable: 504 Gateway Timeout
error reporting health: unauthenticated: Invalid token

上記のように、コマンドでデプロイを実行すると「Waiting for depot builder...」と表示され、長時間待たされた挙句、最終的に「504 Gateway Timeout」で失敗してしまいました。
(何もしてないのに壊れた状態)

イメージビルドのプロセスが変わった

fly.ioでは、DockerイメージのビルドをローカルのDockerを使うか、リモート上にDocker環境を用意してビルドすることができました。

--local-only オプション(これまでのデフォルト)をつければローカルのDockerでビルドし、--remote-only オプションをつければリモート上のDockerでビルドしていました。

しかし最近、--depot オプションが導入され、Depot というサービスを利用してビルドするオプションが追加されました。

さらに、このDepotオプションがデフォルトになるというアナウンスがありました。 https://community.fly.io/t/depot-remote-builders-becoming-the-default/21756

自分の場合、--remote-only オプションを明示してデプロイしていたため、影響はないと思っていましたが、どうやら違ったようです。

一旦--depot=falseにしてデプロイする

2024年9月24日現在、私の環境ではDepotを使ったデプロイがうまくいきません。
--depot=false オプションを使用すると、今まで通りのリモート環境でビルドできます。

$ flyctl deploy --dockerfile flyio/Dockerfile --config flyio/fly.production.toml --remote-only --depot=false

これで、とりあえずデプロイできるようになりました。

パーティーハード株式会社

Discussion