前提条件
- 既存のWEBAPPがあること。今回はrails x postgresql環境で行っています。
- dokcerがinstallされている、ある程度操作方法がわかる
- docker-composeがinstallされている。
- 本記事ではただDOCKER化するだけがゴールです
DOCKER化してみよう!
今回はこのような至って普通なrails appをdocker化してみます。
こちらを参考に環境構築しています。
僕はrailsやpostgresqlの知識さっぱりですが、docker化することができたので初心者も是非やってみましょう。
ここに用意するもの
docker-composeを利用し、docker化を行うために新たに必要なものは以下のとおりです。
Dockerfileを記述しよう
Dockerfileとはdocker化を行うためのコンテナの設計図みたいなものです。
今回はこのように記述しました。
nodeやyarn,rubyとpostgresqlのためにlibpq-devをインストールしたりrailsを起動するコマンドを設定したりしてます。既存のWEB APPによって異なります。
docker-compose.ymlを記述しよう
config/database.ymlに追記しよう
Rails側のデータベースの設定をしていきます
ENVでdocker-composeで記述した環境変数を読み取っています。
コマンドを打ち込んでいく
準備できたのでコマンドを打ち込んでいきます。手始めに$docker-compose build
。
info
Gemfile.lockでエラーが発生したら、空のGemfile.lockを作成し再度実行して下さい
コンテナをrunする
次に$docker-compose up
でコンテナをrunします。お好みで-d
でデタッチで起動してもかまいません。
3000ポートでサーバー起動までできたら成功です。
webコンテナとdbコンテナがrunしているところが確認できます。
データベースの生成
最後にデータベースの生成を行います。$docker-compose run web rake db:crate
後に$docker-compose exec web bash
でターミナルの中に入り、rails db:migrate
します。
localhost:3000で確認できたらdocker化成功です!おめでとうございます!
(エラーを解消する)
僕の場合、migrate後railsのエラーが発生したのでググって解決します。
色々やって
しっかりレンダリングされました。データの保持も確認できます。