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 でした。。問題なくハロワは出てました。
この記事が気に入ったらサポートをしてみませんか?