2017-04-06 デプロイを高速化したい 日記 やりたいこと デプロイに時間かかるのなんとかしたい Rails環境をDockerで作りたい イメージを作っておいてそれをデプロイすれば早いはず!! 環境はAWS Elasticbeanstalkへのデプロイ 今回はMulti-Containerやりません、ECSがつらいので さらにこの辺を自動化したい(CI, CD) デプロイ戦略 joker1007さんのやつ http://qiita.com/joker1007/items/b8a932c1ae29705cef8d ・Railsアプリとはいえ、動くものがRailsのプロセスとは限らない ・sidekiq その他の非同期処理プロセス ・cronによるバッチ処理 ・assets:precompile ・db:migrate ・各RAILS_ENV毎の設定 ・各サービスのトークン情報 ・接続先ミドルウェアの情報 ・チームメンバーの習熟度 ・deployスクリプト ・どのタイミングでイメージを作るか ・ログの取得 zaruさんのやつ http://qiita.com/zaru/items/55ffb9baf4ef9c55c616 Dockerfileが違うっぽい。サイズくそでかい。 イメージ探すぞ 検討したけど使えなかったもの alpineベースのrails環境 http://stangler.hatenablog.com/entry/2017/01/17/150317 重すぎ Alpine Rails https://hub.docker.com/r/centurylink/alpine-rails/~/dockerfile/ 軽いけど古い 自分でイメージ作るぞ Dockerイメージの軽量化 お前のDockerイメージはまだ重い https://speakerdeck.com/stormcat24/oqian-falsedockerimezihamadazhong-i Alpine Linuxの話 alpine linux meetupのkakakakakuさんによるまとめ http://kakakakakku.hatenablog.com/entry/2016/04/25/223909 軽量イメージ時代を 生きるためのAlpine Linux https://speakerdeck.com/stormcat24/qing-liang-imezishi-dai-wo-sheng-kirutamefalsealpine-linux alpine解説のブログポスト http://blog.stormcat.io/entry/alpine-entry-apk apk add --update はもうapk add --no-cache でいいとか https://github.com/gliderlabs/docker-alpine/blob/master/docs/usage.md#disabling-cache Dockerfileを作っている”最中”のベストプラクティス http://qiita.com/pottava/items/452bf80e334bc1fee69a libv8周りで苦しんだ libv8はいらねぇんだけど??? https://github.com/cowboyd/libv8#use-with-different-standard-c-libraries というわけで http://blog.taaas.jp/tips/therubyracer-docker/ https://hub.docker.com/r/usualoma/ruby-with-therubyracer/builds/bhacsduaeh3dixtvuutpe2x/ Ruby2.4.1版を自分で作った https://hub.docker.com/r/kuntao/ruby-with-therubyracer/ おまけ mysql2.soからlibmysqlclient.so.18が参照できない問題 mariadb-client-libs入れればいい bundlerのDeploymentModeの話 http://bundler.io/v1.14/man/bundle-install.1.html#DEPLOYMENT-MODE