kuntalog

頭の整理と書く練習。師匠募集中。

デプロイを高速化したい

やりたいこと

  • デプロイに時間かかるのなんとかしたい
  • Rails環境をDockerで作りたい
    • イメージを作っておいてそれをデプロイすれば早いはず!!
  • 環境はAWS
    • Elasticbeanstalkへのデプロイ
    • 今回はMulti-Containerやりません、ECSがつらいので
    • さらにこの辺を自動化したい(CI, CD)

 

デプロイ戦略

joker1007さんのやつ

  • Railsアプリとはいえ、動くものがRailsのプロセスとは限らない
  •        ・sidekiq その他の非同期処理プロセス
  • ・assets:precompile
  • ・db:migrate
  • ・各RAILS_ENV毎の設定
  • ・チームメンバーの習熟度
  • ・どのタイミングでイメージを作るか
  • ・ログの取得
 

zaruさんのやつ

Dockerfileが違うっぽい。サイズくそでかい。
 

イメージ探すぞ

検討したけど使えなかったもの

alpineベースのrails環境
重すぎ
 
Alpine Rails
軽いけど古い
 

自分でイメージ作るぞ

Dockerイメージの軽量化

お前のDockerイメージはまだ重い

Alpine Linuxの話

alpine linux meetupのkakakakakuさんによるまとめ
 
軽量イメージ時代を 生きるためのAlpine Linux
 
alpine解説のブログポスト
 
apk add --update はもうapk add --no-cache でいいとか

Dockerfileを作っている”最中”のベストプラクティス

 

libv8周りで苦しんだ

libv8はいらねぇんだけど???
 
というわけで
 
Ruby2.4.1版を自分で作った
 
 

おまけ 

mysql2.soからlibmysqlclient.so.18が参照できない問題

mariadb-client-libs入れればいい

bundlerのDeploymentModeの話