dockerはインストールしといてください。
データベースはmysqlとし、railsのコンテナとは分けて動かします。
データベース
$ docker run --name local-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest
プロジェクトの作成
$ docker run --rm -it -v "$(pwd)":/usr/src/app -w /usr/src/app rails rails new webapp -d mysql
Dockerfileの作成
$ cd webapp
$ vi Dockerfile
FROM rails:onbuild
Dockerfileにこの1行を書いてください。
dockerイメージのビルド
$ docker build -t my-rails-app .
database.yml修正
username、passwordは適宜修正してください。
conf/database.yml
default: &default
adapter: mysql2
encoding: utf8
pool: 5
username: root
password: my-secret-pw
host: db
マイグレーション
$ docker run --rm -it -v $(pwd):/usr/src/app --link local-mysql:db my-rails-app bash
$ bin/rake db:create db:migrate
$ exit
rails
やrake
コマンドを打つ必要がある場合に使います。
起動
$ docker run --rm -it -p 8080:3000 -v $(pwd):/usr/src/app --link local-mysql:db my-rails-app
http://localhost:8080 or http://host-ip:8080 でアクセスできます。
[おまけ]コンテナが増えまくったら
以下のコマンドで消せます。(runしているコンテナは消えません)
$ sudo docker rm `sudo docker ps -a -q`