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は改良の余地があると思います、がとりあえず今回は環境構築ができるところまで。

最後までお読みいただきありがとうございました。

By user