環境構築の仕方について簡単にまとめていく。
今回は、
Rails+MYSQL+Dockerの開発環境構築
前提条件
Dockerがインストールされていること
今回のバージョン
ruby 2.6.5
rails 5.2.3
MYSQL 8.0.19
必要なファイルの確認
Dockerfile
Gemfile
Gemfile.lock(空)
docker-compose.yml
以下開発ディレクトリに作成
Dockerfileの作成
Dockerfile
FROM ruby:2.6.5 # 必要なパッケージのインストール RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs # 作業ディレクトリの作成+ルートディレクトリの設定 RUN mkdir /myapp WORKDIR /myapp # Gemfileの追加する COPY Gemfile /myapp/Gemfile COPY Gemfile.lock /myapp/Gemfile.lock # bundle installの実行 RUN bundle install COPY . /myapp
Gemfileの作成
Gemfile
source 'https://rubygems.org' gem 'rails', '5.2.3'
Gemfile.lockの作成
docker-compose.ymlの作成
docker-compose.yml
version: '3'
services:
# データベースの設定
db:
image: mysql:8.0.19
# 認証方法の設定(MYSQL8系)
command: --default-authentication-plugin=mysql_native_password
environment:
# 使用する値を設定
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: root
ports:
- "3306:3306"
# サーバーの設定
web:
build: .
command: rails s -p 3000 -b '0.0.0.0'
volumes:
- .:/myapp
ports:
- "3000:3000"
links:
- db
アプリケーションの作成
$ docker-compose run web rails new . --force --database=mysql
database.ymlの修正
config/database.ynl
default: &default
adapter: mysql2
encoding: utf8
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
# 以下 docker-compose.ymlで設定した値に変更
password: password
host: db
コンテナの起動
$ docker-compose build
コンテナの起動
$ docker-compose up
docker-compose downで停止
データベースの作成
$ docker-compose run web rails db:create
localhost:3000へアクセス
以上で作成完了
