phoenix アプリのフロントエンド(html/css/javascript)更新をsystemdのunitファイルに追加した
今のsystemd unitファイルはこんな感じ。フロントエンド更新のためにExecStartPreを追加した。
[root@host ~]# cat /usr/lib/systemd/system/phoenix.service [Unit] Description = hello phoenix [Service] EnvironmentFile=/etc/environments/phoenix WorkingDirectory=/home/dela/www/hello/ ExecStartPre=/usr/local/src/elixir-1.1.1/bin/elixir /usr/local/src/elixir-1.1.1/bin/mix clean ExecStartPre=/usr/local/src/elixir-1.1.1/bin/elixir /usr/local/src/elixir-1.1.1/bin/mix deps.get --only prod ExecStartPre=node node_modules/brunch/bin/brunch build ExecStartPre=/usr/local/src/elixir-1.1.1/bin/elixir /usr/local/src/elixir-1.1.1/bin/mix phoenix.digest ExecStartPre=/usr/local/src/elixir-1.1.1/bin/elixir /usr/local/src/elixir-1.1.1/bin/mix compile.protocols ExecStart=/usr/local/src/elixir-1.1.1/bin/elixir -pa _build/prod/consolidated -S /usr/local/src/elixir-1.1.1/bin/mix phoenix.server Restart = always Type = simple User = dela [Install] WantedBy = multi-user.target
以下、追加したコマンド
mix clean
Delete generated application files.
前回のコンパイル結果を削除
Mix.Tasks.Clean
mix deps.get --only prod
Get all out of date dependencies, i.e. dependencies that are not available or have an invalid lock. --only - only fetch dependencies for given environment.
プロダクトモード用の依存パッケージの解決
Mix.Tasks.Deps.Get
brunch build
builds a project for distribution. By default it enables minification.
フロントエンドのコンパイル
brunchって知らなかった。phoenixのアプリのデフォルトのfrontend build tool。glupとかに変更もできる。
Brunch - ultra-fast HTML5 build tool
mix phoenix.digest
Digests and compress static files.
コンパイル結果をphoenixアプリが参照してるディレクトリへ配置
Mix.Tasks.Phoenix.Digest – Phoenix v1.0.3