“mix release” released
ymtszw�tokyo.ex #11
自己紹介
2
Erlang & Elixir Fest 2019でLTしました
Elixir 1.9.0, リリースされました
今日のtalk
再放送パート
“mix release” in production
Release & Docker
# 最近のバージョンのdockerでは、 ”AS” でDockerfile内ローカルなaliasを環境につけることができる
# Alpine使うのはmustではない。muslだとビルドできないdepsが入るかも、といった懸念があるならdebian系でも
FROM elixir:1.9.0-alpine AS build
...
ENV MIX_ENV=prod
RUN mix compile
RUN mix release
# ここで、まっさら&スリムなベースイメージに切り替え
FROM alpine:3.9 AS app
…
# ごっそりコピー、これで余計なビルド時のみ必要なパッケージの削除などが不要
WORKDIR /app
COPY --from=build /app/_build/prod/rel/my_app ./
Release & Docker
Migrationスクリプトは
Deploy時のMigration
Deploy時のMigration
1.9での“mix release” in production
Migrationをどう走らせるか
いくつか候補(いずれもOK)
まとめ