チュートリアルに沿って Rails5.0 でウェブアプリを作る(第1章その1:Rails アプリの新規作成)
前回 Rails5.0 をインストールし終えたので、早速チュートリアルに沿って簡単なウェブアプリ作成をしていきたいと思う。今回は第1章。
---
Hello World に行くまでの過程で、rails コマンドまわりで怒られた箇所を以下の通りメモしておく。
< rails new 時>
1. Bundler を入れていなかった。rbenv インストール時にまた作業をすっ飛ばしていたもよう。
https://github.com/rbenv/rbenv#installing-ruby-gems
$ gem install bundler
$ gem env home
/root/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0
2. sqlite を入れるために下記コマンドを叩け、と指示されたので実行した。
$ gem install sqlite3 -v '1.3.12'
すると sqlite3.h が見当たらないからとエラーになり、先に次のコマンドを入れるよう怒られた。
その後、改めて gem install すると無事に処理が走った。
< rails server 時>
もろもろの初期設定が終わったので、いざ rails server で立ち上げ!と思ったのだが、 http://localhost:3000 にアクセスできなかった。
これは、Docker ー クライアント(Mac)間のポートフォワード設定をちゃんとすればいけるはず(そういえばやってなかったわ)と思ったので早速やってみる。
そういうわけで手順は次の通り。1度作った Container に後から -p するのはできないようなので、下記のように「docker commit」で今ある環境を複製し、-p 付きで立ち上げる。
- docker commit して、いま使っている Container をもとに Image を新規作成する
- 上記 Image にポート設定を施して docker run し、新たな Container を作成する
- 新しく作った Container の CentOS7 内で source し、環境変数を適用する
- バインドオプション付きで rails s する
上記 1 〜 2 が下記コマンド。
$ docker commit {Container の ID} {新しいイメージ名}:{新しいタグ名}
$ docker run -it -v /{ローカルの作業用ディレクトリ名}:/home/{任意のディレクトリ名} -p 3000:3000 --name {Container の名前} {Image の ID}
上記 3 〜 4 が下記コマンド(ここからは CentOS7 内)。rbenv が動くことが確認できたら、念のため rbenv rehash もしておく。
$ source ~/.bash_profile
$ source ~/.bashrc
$ rbenv -v
$ rbenv rehash
$ ruby -v
$ rails -v
$ rails s -b 0.0.0.0
きた!!かわいい。
思いがけず Docker についてまた少し理解が深まってなんだか棚からぼた餅。
---
さあてやっとこれで Hello World できる。
ということでチュートリアルに沿ってさくさく進み、一旦ここで GitHub にプッシュした。
Heroku へのデプロイは次回やってみようと思う。