HerokuにElixir + Phoenixをデプロイしてみる。一旦起動まで行くが、bullpackで一部問題ありのまま後日へ。
前回に続き、今回はHerokuにサンプルアプリをデプロイする所までチャレンジです。
公式ドキュメント通りでほぼ行けるとの事なので・・・・
Deploying on Heroku – Phoenix v1.3.4
こちらを参考に進めていきます。
1 プロジェクト作成
Phoenixのプロジェクト自体はこちらをまたお世話になります。
Excelから関数型言語マスター3回目:WebにDBデータ表示【PostgreSQL or MySQL編】
前回mysqlで進めてしまったので
DockerでPostgreSQL環境を構築する(更新: 2017/6/20)
こちらを参考にしてDockerでPostgresSQLを構築
無事コンテナが立ち上がったので
user_id: root
password : test
port番号5432で
config/dev.exsに記入
# Configure your database
config :test_db, TestDb.Repo,
adapter: Ecto.Adapters.Postgres,
username: "postgres",
password: "test",
database: "test_db_dev",port: "5432"
hostname: "localhost",
pool_size: 10
これをベースに
$ mix ect.create
ちなみにこのport:はEctoのドキュメントで発見、まあ文字通りですが。
Ecto.Adapters.Postgres – Ecto v2.2.11
一旦これでPhoenixの基本的な画面は立ち上がる
$ iex -S mix phx.server
なので
herokuに上げてみる事に
2 Herokにデプロイ準備
Deploying on Heroku – Phoenix v1.3.4
と
Phoenix Production デプロイへの道その2:Heroku編
を見ながら自分のプロジェクトに合わせ保管しながら進めます。
古いドキュメントだとphxの表記じゃないとありましたが、そこらへんは公式も修正されているようです。
ところがnodeでこける
-----> Installing binariesResolving node version 6.9.2...Downloading and installing node 6.9.2...Installing Node 6.9.2...Using default npm version-----> Building dependenciesInstalling and caching node modules/app/tmp/buildpacks/abc8fb9e8be131ec2574c4ba9e31b81540d97b3bbce47d96e05959c4f81404ac71605dd35ebbcf7a1abe958c346d8ee266ff035de9254424eb54e8b9480059be/lib/build.sh: line 113: cd: /tmp/build_a02ddee6b6ef8bb769fd0f01616a3612/./assets: No such file or directory! Push rejected, failed to compile Phoenix app.
理由はよくわからんがbullpackとnodeの問題か・・・?
https://elixirforum.com/t/heroku-deploy-issues-with-phoenix-1-3/5710/15
を参考にbullpackの一部を一旦消去
一旦static-buildpackを外して再度
$ git push heroku master
無事起動
うーん。この部分は何かドキュメントの読み違いがあるのか・・・・
後日原因さぐります。