技術系

【Docker入門】さくっと5分でrailsアプリを立ち上げてみた

更新日:


dockerのイメージがぼんやりなので、お勉強として自身のMacにDockerを使ってrailsを立ててみました。
一応ブラウザからの動作確認までいけました。

スポンサーリンク

プロジェクトのディレクトリ作成

まずはrubyのコンテナを持ってくる。

動かしてみる

 

カレントディレクトリにGemfileが出来上がったので、

を記載する。

イメージ内にgemを埋め込む為に、Gemfile.lockを生成しておきます。

そしてDockerfileに下記の内容を記載します。

Dockerfileを作ったら、

たくさんの文字がコンソールに流れてこれでイメージができあがります。

 

rails newしてみる

 

 

rails new .

やったときのメッセージですね。
最後にGemfileが既にあるけど上書きしていいかい?と聞かれていますので【Y】で上書きします。

DockerFileに

を追記

ビルドして再作成する

起動するだけなら

でいけます。

こうすることで、
<プロジェクトへのファイルパス>
ここをマウントした状態になるため、ここで直接ファイルを書き換えて、再起動させることでそのまま設定が反映されます。

再起動の仕方

下記コマンドを実行

とりあえずこれでrailsアプリは立ち上がったのだと思う。
続いてdocker-composeでコンテナを管理していく。

docker-composeとは?

複数のコンテナを使ってアプリが構成されるときに、
例えば4つあったら、4回コンテナの起動コマンドを叩かないといけないけど、
docker-compose.yml


・起動するコンテナ
・そのコンテナがリッスンするポート
・その他環境設定とか

を書いておくことで一発のコマンドで必要なコンテナを同時にあげることができるものなんじゃないかと思われる。

今回だとrailsはデータベース(mysql)と一緒に動くものなので
・rails
・mysql
2つのコンテナを
docker-composeで管理しようというすんぽう。

では書いていきます。

vi docker-compose.ymlで

docker-compose.ymlができたら再ビルド

※この時、
〜〜〜〜〜port is already allocated
みたいに、空いてるはずのポートなのに、「すでにそのポートは使われているよ」というメッセージがでてくることがあります。
詳しくはわかりませんが、よくあることみたいで、Dockerを再起動したあとにもう一度

叩くとうまくいきます。

ここからはDBのコンテナの設定をしていきます。

Gemfileを修正

の記述を、

に変更

vim config/database.yml で

に編集

先程編集していたdocker-compose.yml を編集する

またビルドする

起動しているコンテナを確認

この状態でブラウザで、
http://localhost:3000/
を打つとエラーがでます。
まだDBを作成していないためですね。

でDBを作成します。

以上でDockerを使ってrailsアプリを立ち上げることができました。
下記のサイトを参考に進めてみたのですが、
すごくわかりやすくほとんどそのまま言われるがままにやるだけでできあがりました。
この経験をもとにこれからDockerの知識を深めていきたいです。
http://qiita.com/togana/items/30b22fc39fe6f7a188ec

 今日の一言

railsは良いみたいですぞ。

 

 


スポンサードリンク

スポンサードリンク

-技術系

Copyright© chat-blog , 2017 AllRights Reserved.