【Rails】DockerでRails+MySQLの環境を構築してみる

おだねこ

~簡単な自己紹介~

  • 嫁と猫3匹と暮らすフルリモートの三十路SE
  • 投資・節約・副業で資産形成中
  • 現在の金融資産は約1,750万円、めざせアッパーマス層(資産3,000万円)

以前、DockerでRails + PostgreSQLの環境を作る記事を投稿したのですが、別のPCで環境を作ろうとしたらエラーが出てしまったので、PostgreSQLをMySQLに変えて再度、環境構築手順を整理しました。

基本的に下記のQiitaの記事を参考にしています。

Dockerを用いてRuby on Railsの環境構築をする方法( Docker初学者向け )

当記事はRailsが動く環境を作ることが目的の記事になります。

そのため、DockerファイルやYAMLファイルなどの設定値の解説は省略し、手順の一部簡略化を行っています。

開発環境

  • OS:Windows11
  • Docker Desktopインストール済み
  • VSCodeインストール済み

Dockerファイルを作成する

下記のコマンドを実行し、Dockerファイルを作成します。

エラーメッセージが表示されますが、Dockerファイルが作成されていれば問題ありません。

type nul > Dockerfile

下記の内容でDockerファイルを編集します。

FROM ruby:3.1.2
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs default-mysql-client vim
RUN mkdir /myapp
WORKDIR /myapp
COPY Gemfile /myapp/Gemfile
COPY Gemfile.lock /myapp/Gemfile.lock
RUN bundle install
COPY . /myapp

Gemfileを作成する

下記のコマンドを実行し、Gemfileを作成します。

エラーメッセージが表示されますが、Gemfileが作成されていれば問題ありません。

type nul > Gemfile

下記の内容でGemfileを編集します。

source 'https://rubygems.org'
gem 'rails', '~> 7.0.0'

Gemfile.lockを作成する

下記のコマンドを実行し、Gemfile.lockを作成します。

エラーメッセージが表示されますが、Gemfile.lockが作成されていれば問題ありません。

このファイルは編集不要です。

type nul > Gemfile.lock

YAMLファイルを作成する

下記のコマンドを実行し、YAMLファイルを作成します。

エラーメッセージが表示されますが、YAMLが作成されていれば問題ありません。

type nul > docker-compose.yml

下記の内容でYAMLファイルを編集します。

version: '3'
# docker-composeの書式のバージョンを指定します。(原則最新を指定する)

services:
  db:
    image: mysql:5.7
    environment:
      MYSQL_USER: user
      MYSQL_ROOT_PASSWORD: pass
    ports:
      - "3306:3306"
    volumes:
      - mysql_data:/var/lib/mysql

  web:
    build: .
    command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
    volumes:
      - .:/myapp/
    ports:
      - 3000:3000
    depends_on:
      - db

volumes:
  mysql_data:

Railsプロジェクトを作成する

下記のコマンドを実行して、コンテナをビルドします。

docker compose build

下記のコマンドを実行して、Railsプロジェクトを作成します。

docker compose run web rails new . --force --database=mysql --skip-bundle

成功すると、Rails関連のフォルダ・ファイルが生成されます。

コンテナを起動する

下記のコマンドを実行して、コンテナを起動します。

また、Gemfileが書き変わりますので、下記のコマンドをもう一度実行します。

docker compose up -d --build

エラーなく終了すればOKです。

DBを作成する

config/database.ymlを編集する

config/database.ymlの17行目付近にあるDBのパスワードとホストの設定を編集します。

# 以下2行を編集
  password: pass
  host: db

DBを作成する

下記のコマンドを実行して、DBを作成します。

docker compose exec web rails db:create

環境が構築できたか確認する

下記のURLを開きます。

http://localhost:3000/

問題なく表示されれば、RailsMySQLのインストールが無事完了しています。

以上になります。

お疲れさまでした。

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA