Docker でRails!簡単まとめ(docker tool box,docker for mac)

メモとしてちょっと共有する機会のあったものを公開します
私のリポジトリなどを使ってるのですが公式サンプルそのままな感じなので公式の利用でも可能です!

(私のリポジトリ)
git clone https://github.com/yomi2201/5.2RailsDockerCreate.git
する

Docker for Mac をインストールする
(windowsならDocker tool box)
先ほどの4ファイルをmyappとかフォルダをつくりコピーする

Dockerのコマンドの
docker-compose run web rails new . --force --database=mysql
を実行する

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
ここで時間がかかるのでお茶を飲みながらDockerについて説明
Dockerのメリット
・Vagrantとかより軽い
・MySQLやPGなど本番環境とほぼ同じことをできる(Nginxなども使える)
・Dockerの構成ファイルを共有することでMacとWindowsなどの差異もなくなり共有できる
・一度ダウンロードした後だと簡単に環境を作って捨ててができる
・勝手にファイルが作られていてそのまま共有フォルダになっていてめちゃくちゃ簡単
・Herokuのデプロイも容易にできる(https://qiita.com/akirakudo/items/16a01271b0a39316e439)
今回はMySQLだけど最初からpostgreSQLを使える
イメージをDockerfileなどで作成してダウンロードする→コンテナを作成する←コンテナはRails、MySQLなどの一つずつ作られる
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

さて、そろそろ終わった?
docker-compose build
を実行する(もしかしたらgemを指定する必要があるかも)

完了後configのdatabase.ymlの
default&defalut のpoolの後ろに下記を変更する
username: root
password: password
host:db

終わったらターミナルに戻りコマンド入力
docker-compose up -d
でバックグラウンドでRailsが入っているコンテナが立ち上がる

DBを作るコマンドも使う
docker-compose run web bundle exec rake db:create
これで準備完了
localhost:3000へアクセスしよう!!

(windowsならmachineIPである
$ docker-machine ip  ↓結果
192.168.99.100
このような数字の後ろに :3000 をつけてアクセスしましょう!)

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
gem を加えるときは?
docker-compose build
を実行したらbundle installと同じ効果が得られます!

modelやcontrollerなどRailsコマンドを使いたい
docker-compose exec web bash
コマンドでコンテナ内に入りRailsコマンドを打てるようになる rails g controller homeなど
同様にweb部分をdbと指定するとmysqlコンテナ内に入ることができてSQLを実行できる

起動したコンテナを停止させるには?
docker-compose stop
で停止できます

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

動いているコンテナを知りたい
docker ps
で確認できますし -a オプションで全コンテナを見れます

さらにプラス docker-composer up で -d オプションを使わず実行するとSQLなどの処理が見れます!
しかしそうするとdockerの終了を コントロール+C で終了することになりますが
tmp/pids/server.pid というものが作られて次回のコンテナ起動に支障をきたすことがあります
(起動中だよってエラーが出る)
このファイルを削除すると起動できるようになるのでもしそういった状態になるようでしたらチェックしましょう!!

今回はstopコマンドのみですが終了じゃなく破棄させるdownコマンドなどがあります!
自分で調べて間違いなく利用できるようになりましょう!!

コメント

人気の投稿