Phoenix を Heroku に deploy

Heroku に deploy みたいな話がどこかにあったのですが、Phoenix だとどうなのか確認。ドキュメント化されてますね。

あるいは qiita の記事

暫く Heroku 使ってなかったのですが二段階認証になってるのか (こら

こちらの環境は以下とのこと。

# mix phx.new --version
Phoenix installer v1.7.11
# elixir --version
Erlang/OTP 26 [erts-14.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit]

Elixir 1.14.5 (compiled with Erlang/OTP 26)

以下を見つつで

toolbelt 入れます。

ハロワ作って deploy してみます。

  • docker-compose.yml と .docker-config をコピィ

  • docker compose build

  • docker compose up して mix phx.new . --live --no-ecto します

git リポジトリ

作成して github に登録してます。次は heroku の application 作成? と思ったら以下な出力が。

 ▸    To create an app, verify your account by adding payment information. Verify now at https://heroku.com/verify Learn more at
 ▸    https://devcenter.heroku.com/articles/account-verification

カード情報入れてリトライ。

% heroku create --buildpack hashnuke/elixir
 ›   Warning: heroku update available from 8.5.0 to 8.10.0.
Creating app... done, ⬢ guarded-coast-96717
Setting buildpack to hashnuke/elixir... done
https://shrouded-beyond-87539-59adc1a662dd.herokuapp.com/ | https://git.heroku.com/shrouded-beyond-87539.git

remote の情報登録されていることを確認。origin に push してから heroku create なのかしらと。

% git remote -v
heroku  https://git.heroku.com/shrouded-beyond-87539.git (fetch)
heroku  https://git.heroku.com/shrouded-beyond-87539.git (push)
origin  git@github.com:yamanetoshi/hello_world_phoenix.git (fetch)
origin  git@github.com:yamanetoshi/hello_world_phoenix.git (push)

Heroku の deploy 設定

config/prod.exs の以下の部分修正。

config :workspace, WorkspaceWeb.Endpoint, 
  url: [scheme: "https", host: "shrouded-beyond-87539-59adc1a662dd.herokuapp.com", port: 443],
  force_ssl: [rewrite_on: [:x_forwarded_proto]],
  cache_static_manifest: "priv/static/cache_manifest.json"

で、config/elixir-buildpack.exs 作成。中身が以下?

# Elixir version
elixir_version=1.14.5

# Erlang version
# https://github.com/HashNuke/heroku-buildpack-elixir-otp-builds/blob/master/otp-versions
erlang_version=26.1

# Invoke assets.deploy defined in your mix.exs to deploy assets with esbuild
# Note we nuke the esbuild executable from the image
hook_post_compile="eval mix assets.deploy && rm -f _build/esbuild*"

Procfile も作成。

web: mix phx.server

deploy

以下も実行。

# mix phx.gen.secret

あるいは以下。

% heroku config:set SECRET_KEY_BASE="xvafzY4y01jYuzLm3ecJqo008dVnU3CN4f+MamNd1Zue4pXvfvUjbiXT8akaIF53"

で、PostgreSQL もアプリに追加。

% heroku addons:create heroku-postgresql:hobby-dev

で、ブラウザから github 登録して deploy したのですがファイル名勘違いしてたようで、正しくは elixir_buildpack.config でした。。問題なくハロワは出てました。

この記事が気に入ったらサポートをしてみませんか?