Rails6が2019-08-19に正式リリースしました。早速Rails6を試してみたい、ということでまずは開発環境を作っていきたいと思います。
追記(2019-10-05): nginxを用いての開発環境構築手順もまとめました。nginxを噛ませたいという方はこちらを参照ください。
Rails6×Ruby2.6.3×Docker×Nginx×MySQLで開発環境を作る
Rails 6 インストール
今のローカルのrailsバージョンを確認
$ rails -v Rails 5.2.2
Rails6をインストールする
# まずrbenvをアップグレードして6.0.0をインストールできるようにする
$ brew upgrade rbenv ruby-build
# インストール
$ gem i -v 6.0 rails
Code language: PHP (php)
Rails のバージョンを確認する
$ rails -v Rails 6.0.0
これでRails6が使えるようになりました。さて、次にRails6を使って新規プロジェクトを作ります。
Railsプロジェクト作成
$ rails new アプリケーション名ケーション名ション名-d mysql
Code language: JavaScript (javascript)
MySQLを使うために -d mysqlを付けています
Dockerfile作成
プロジェクト直下にDockerfileを作成します。いろいろなエラーが発生し、最終的にこれでいけたのでバージョンを貼ります。
FROM ruby:2.6.3-alpine RUN mkdir -p アプリケーション名 WORKDIR アプリケーション名 RUN apk add git RUN apk add --update bash perl RUN apk add libxslt-dev libxml2-dev build-base RUN apk add mysql-client mysql-dev RUN apk add --no-cache file RUN apk add yarn --no-cache COPY . ./ VOLUME /アプリケーション名
docker-compose.yml
プロジェクト直下に docker-compose.ymlファイルを作成します。
version: '3'
services:
db:
image: mysql:5.7
environment:
MYSQL_DATABASE: アプリケーション名_developmentン名_developmentment
MYSQL_USER: root
MYSQL_ROOT_PASSWORD: DBのパスワードスワード
tty: true
ports:
- 3306:3306
command: mysqld --character-set-server=utf8mb4 --explicit_defaults_for_timestamp=true
rails:
build:
context: .
volumes:
- .:/アプリケーション名ケーション名ション名
Code language: JavaScript (javascript)
config/database.yml
hostにdocker-composeのdbコンテナ名を使うようにします。
default: &default
adapter: mysql2
encoding: utf8mb4
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
password: パスワード
host: db
socket: /tmp/mysql.sock
development:
<<: *default
database: アプリケーション名_developmentン名_developmentment
Code language: JavaScript (javascript)
scripts/launch.sh
コンテナ起動時に実行するコマンドをまとめています。
bundle install
yarn install
rails s -b 0.0.0.0 -p 3000
Code language: CSS (css)
イメージ作成
$ docker-compose build --no-cache
コンテナ起動
$ docker-compose up
...
...
...
...
rails_1 | Using webdrivers 4.1.2
rails_1 | Using webpacker 4.0.7
rails_1 | Bundle complete! 17 Gemfile dependencies, 76 gems now installed.
rails_1 | Bundled gems are installed into `/usr/local/bundle`
rails_1 | => Booting Puma
rails_1 | => Rails 6.0.0 application starting in development
rails_1 | => Run `rails server --help` for more startup options
rails_1 | Puma starting in single mode...
rails_1 | * Version 3.12.1 (ruby 2.6.3-p62), codename: Llamas in Pajamas
rails_1 | * Min threads: 5, max threads: 5
rails_1 | * Environment: development
rails_1 | * Listening on tcp://0.0.0.0:3000
rails_1 | Use Ctrl-C to stop
Code language: PHP (php)
ブラウザで開いてみる
localhost:3000 にアクセスする。こんな画面になって入ればOK!

まだまだDockerfileやdocker-composeは改良の余地があると思います、がとりあえず今回は環境構築ができるところまで。
最後までお読みいただきありがとうございました。