Dockerで React on Ruby on Railsをするための最適なDocker Imageを作った

こんにちは。
最近はDockerを使ってReact on Ruby on Railsの環境を扱うプロジェクトが増えてきました。
今まではRubyのオフィシャルのDockerイメージをベースに各プロジェクトごとのカスタマイズをするDockerfileを作って、その中でnodeもインストールしていました。

そうすると、ちょっとしたことではありますが
デプロイ時のビルドが時間がかかるようになってて、Docker Imageもサイズが大きくなるという問題がありまして
ベースにするイメージとしてRubyとNodeだけが普通に入ったDocker Imageが欲しくなりました。

ですので、なるべくステップ数を減らすのと同時に、ビルド時間も省きたいということで
ビルド済みのオフィシャルのDocker Imageからモジュールをコピーしてくるようにしてみました。

結果、RubyとNodeを使える状態で、通常のDocker Imageだと1GBを切るサイズになりました。

Ruby on Rails関連でGemを追加していったら、1GBは超えるかもしれませんが

以前作成したDocker Imageからはかなりダイエット出来ました。

https://cloud.docker.com/repository/docker/gendosu/ruby-node

使い方は

とりあえずコンテナとして起動してみたい場合は

docker run –rm -it gendosu/ruby-node:ruby-2.6.1-node-10.15.1 bash

DockerfileでFROMに書く場合は

と書いてください。

gendosu/ruby-nodeについては、ロケールを変える等の操作はまったくしておらず、純粋にRubyモジュールとNodeモジュールを両方含んだDocker Imageという位置づけで作成しましたので、ロケールを変える、フォントファイルを追加する等は各自Dockerfileで行ってください。

そのうち、gendosu/ruby-node-jpを作成予定です。

アンケート

未分類

Posted by GENDOSU