環境構築の仕方について簡単にまとめていく。
今回は、

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へアクセス

以上で作成完了