100day’s blog

思いついた事や、プログラミングの毎日の作業工程を短めにまとめてます。

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を構築

f:id:gpstandard:20181009232529p:plain

無事コンテナが立ち上がったので

 

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 binaries
Resolving node version 6.9.2...
Downloading and installing node 6.9.2...
       Installing Node 6.9.2...
       Using default npm version
 
-----> Building dependencies
       Installing 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の一部を一旦消去

f:id:gpstandard:20181010004934p:plain

一旦static-buildpackを外して再度

$ git push heroku master

無事起動

f:id:gpstandard:20181010005032p:plain

うーん。この部分は何かドキュメントの読み違いがあるのか・・・・

後日原因さぐります。