5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

かなり前にGigalixirにデプロイしたPhoenixアプリが長い間ほったらかしになっていたので、久しぶりにメンテナンスをしました。
ElixirErlangのバージョンが古かったので最新のものにしようとしましたが、GigalixirStackが古くてうまく行きませんでした。
若干戸惑った部分があったので忘備録を残します。

本作品は闘魂Elixir #42の成果です。

これからElixirを始める方にはこのサイトがおすすめです。

Elixirとコミュニティの雰囲気をゆるく味わいたい方は「先端ピアちゃん」さんの動画が超オススメです。

結論

GigalixirにログインしアプリのダッシュボードでStackのバージョンを確認。
必要であれば最新のものにアップデートする。

gigalixir-edit-app.png

Gigalixir Stackとは

端的にいうとHerokuが管理しているOSのイメージのようです。

本執筆時点では、gigalixir-18gigalixir-20から選択できるようです。

戸惑ったこと1

公式ドキュメントのデプロイ手順書に書かれている通り、ElixirErlangのバージョンを変更したら、怒られてしまいました。

この部分です。

デプロイ手順書に書いてあるバージョン
echo "elixir_version=1.15.4" > elixir_buildpack.config
echo "erlang_version=26.0.2" >> elixir_buildpack.config

変更前のバージョンは以下の通りでした。

元のelixir_buildpack.config
elixir_version=1.12.3
erlang_version=23.3.2

変更後デプロイすると以下のエラーがでました。

怒られた内容
...
-----> Checking Erlang and Elixir versions
       Will use the following versions:
       * Stack heroku-18
       * Erlang 26.0.2
       * Elixir v1.15.4
       Sorry, Erlang '26.0.2' isn't supported yet or isn't formatted correctly. For a list of supported versions, please see https://github.com/HashNuke/heroku-buildpack-elixir#version-support
...

Sorry, Erlang '26.0.2' isn't supported yet or isn't formatted correctly.

Erlang '26.0.2'はサポートされているはずなのにまだサポートされていないと言い張っています。

For a list of supported versions, please see https://github.com/HashNuke/heroku-buildpack-elixir#version-support

実際にサポートされているバージョンを確認してみます。エラーメッセージにあるリンク先に行くとまた更に複数のURLがあります。

しばらく戸惑った後にアプリのStackのバージョンを確認してみると、最新のものではありませんでした。

怒られた内容
...
       * Stack heroku-18 <----------- これ
       * Erlang 26.0.2
       * Elixir v1.15.4
...

これが原因でした。Stackのバージョンによりサポートされる依存関係が異なります。

戸惑ったこと2

長い間メンテナンスをしていなかったので、アプリ自体が古くなっていました。かなり多くのパッケージが廃れたバージョンを使っていました。

これらを一気にバージョンアップしたところ、デプロイでエラーが連発しました。これはアプリ側の問題でGigalixirとは関係ないため、別の問題として切り分けることにします。

まずはmix hex.outdatedコマンドで使用しているパッケージのバージョンをリストアップし、あとは地道に丁寧にアップデートしていきます。

mix-hex-outdated.png

運が良ければ、全部一気にアップデートしても大丈夫かもしれません。今回はだめでした。

mix clean --deps
mix deps.unlock --all
mix deps.get

Gigalixirの他のいろんな技

Gigalixirの他のいろんな技については、Qiitaで「Gigalixir」を検索するといくつか記事が見つかります。

他のプラットフォーム

他のプラットフォームを試してみても良いかもしれません。

ElixirPhoenix界隈ではPhoenixの作者であるChris McCordさんの所属するFly.ioが人気です。

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?