読者です 読者をやめる 読者になる 読者になる

鯛めしのお釜

ウェブに関する技術的なメモを書いていきます。

チュートリアルに沿って Rails5.0 でウェブアプリを作る(第1章その1:Rails アプリの新規作成)

バックエンド プログラミング インフラ

前回 Rails5.0 をインストールし終えたので、早速チュートリアルに沿って簡単なウェブアプリ作成をしていきたいと思う。今回は第1章。

railstutorial.jp

 

---

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 が見当たらないからとエラーになり、先に次のコマンドを入れるよう怒られた。

$ yum -y install sqlite-devel

その後、改めて gem install すると無事に処理が走った。

 

rails server 時>

もろもろの初期設定が終わったので、いざ rails server で立ち上げ!と思ったのだが、 http://localhost:3000 にアクセスできなかった。

これは、Docker ー クライアント(Mac)間のポートフォワード設定をちゃんとすればいけるはず(そういえばやってなかったわ)と思ったので早速やってみる。

そういうわけで手順は次の通り。1度作った Container に後から -p するのはできないようなので、下記のように「docker commit」で今ある環境を複製し、-p 付きで立ち上げる。

  1. docker commit して、いま使っている Container をもとに Image を新規作成する
  2. 上記 Image にポート設定を施して docker run し、新たな Container を作成する
  3. 新しく作った Container の CentOS7 内で source し、環境変数を適用する
  4. バインドオプション付きで rails s する

上記 1 〜 2 が下記コマンド。

$ docker commit {Container の ID} {新しいイメージ名}:{新しいタグ名}

$ docker run -it -v /{ローカルの作業用ディレクトリ名}:/home/{任意のディレクトリ名} -p 3000:3000 --name {Container の名前} {Image の ID}

参考:docker commit - Docker

上記 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

きた!!かわいい。

f:id:red_snapper:20161210151637p:plain

思いがけず Docker についてまた少し理解が深まってなんだか棚からぼた餅。

 

---

さあてやっとこれで Hello World できる。

ということでチュートリアルに沿ってさくさく進み、一旦ここで GitHub にプッシュした。

github.com

Heroku へのデプロイは次回やってみようと思う。