修正履歴
- 誤字修正(20190814)
- 「インストール後の作業」に「configの使い方」を追加(20190824)
- 「インストール後の作業」に「twitter・Facebookログイン実装」を追加(20190825)
- 「バージョン変更」ruby:2.6.3、rais:5.2.3(20190825)
- トップページ作成コマンド追記(20190825)
概要
- Dockerを使用したRailsの開発環境を構築
- DBはMySQLを使用
- ローカル開発環境で構築(MySQLのユーザー名、パスワードは簡易なものを使用)
前提
- Mac、Windows10のローカル開発環境で動作
- 「Docker for Windows」か「Docker for Mac」がインストール済みであること
ディレクトリ構造
├─src
│ ├─Gemfile
│ └─Gemfile.lock
├─Dockerfile
└─docker-compose.yml
準備するファイル
ディレクトリ構造にある4つのファイルの内容は下記になります。
Dockerfile
FROM ruby:2.6.3
ENV LANG C.UTF-8
RUN apt-get update -qq && \
apt-get install -y build-essential \
libpq-dev \
nodejs
RUN mkdir /app
RUN mkdir /app/src
ENV APP_ROOT /app/src
WORKDIR $APP_ROOT
ADD ./src/Gemfile $APP_ROOT/Gemfile
ADD ./src/Gemfile.lock $APP_ROOT/Gemfile.lock
RUN bundle install
ADD . $APP_ROOT
docker-compose.yml
version: '2'
services:
mysql:
image: mysql:5.7
command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci
ports:
- "3306:3306"
volumes:
- ./db/mysql_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: 'root-pass'
restart: always
logging:
options:
max-size: 5m
max-file: "10"
app:
build: .
image: rails
container_name: 'app'
command: bundle exec rails s -p 80 -b '0.0.0.0'
ports:
- "80:80"
environment:
VIRTUAL_PORT: 80
volumes:
- ./src:/app/src
depends_on:
- mysql
restart: always
Gemfile
source 'https://rubygems.org'
ruby '2.6.3'
gem 'rails', '5.2.3'
Gemfile.lock
ファイルの中身は空でOK
手順
スケルトンアプリ作成
$ docker-compose run app rails new . --force --database=mysql --skip-bundle
database.ymlを修正
default: &default
adapter: mysql2
encoding: utf8
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
password: root-pass
host: mysql
イメージ再ビルド
※処理完了までちょっと時間がかかることがあります。。。
$ docker-compose build
コンテナ立ち上げ
$ docker-compose up -d
MySQLにRailsのDBを作成
$ docker-compose run app rails db:create
これで、http://localhostにブラウザでアクセスすると、Railsのインストール完了画面がでてきました。
トップページ作成
とりあえずトップページを表示させたい場合は下記コマンドを実行
$ docker-compose run app rails g controller Home top
「get 'home/top'」を「root to: 'home#top'」を変更
# ・・・
root to: 'home#top'
# ・・・
インストール後の作業
私の記事ですが、下記の手順もまとめましたので、参考にしていただければ幸いです。
【Rails】「config」の使い方 - Qiita
サイトから送信するSMTPサーバー情報や、ソーシャルログインなどで使用するAPIキーをGitにアップロードする際に、外部に情報が流出させないようにする設定です。
【Rails】Bootstrap4・jQueryを適用
フロントでBootstrap4とjQueryを適用して構築したい時は便利
Font Awesome適用
アイコンを気軽に使用したい時はこちらが便利。メールアドレスの登録・アンケート回答すると、無料でたくさんのアイコンが使用できます。
【devise】メール認証のサインアップ・イン・アウト機能
メール認証で、サイトに新規会員登録機能や、ログイン・ログアウト機能を搭載する設定です。
【Rails】【Devise】twitter・Facebookログイン実装
上記のメール認証に加えてソーシャルログイン機能を実装する手順です。