ウェブ上のdocker+Railsの記事だけではうまくいかなかったので、備忘録としてメモ。
基本は下記のQuickStartをベースにすればOK
だけど、いくつかポイントがあって、最後の
docker-compose run web rails new . --force --database=postgresql --skip-bundle
はいきなりやってもエラーでコケたので、上記実行前に
docker-compose build
しておくと良さげ。
そのままではbundlerのキャッシュが効かないのと、DBのデータが永続化されないので、
docker-compose.ymlを以下のように修正
version: '2'
services:
db:
image: postgres
volumes:
- ../pgdata:/var/lib/postgresql/data
web:
build: .
command: bundle exec rails s -p 3000 -b '0.0.0.0'
volumes:
- .:/myapp
ports:
- "3000:3000"
depends_on:
- db
volumes_from:
- bundle
bundle:
image: busybox
volumes:
- /bundle
で、できました。
で確認。