【Rails】DockerでRails+MySQLの環境を構築してみる
![](https://odaneko-tec.com/wp-content/uploads/2023/12/【Rails】DockerでRailsMySQLの環境を構築してみる.png)
~簡単な自己紹介~
- 嫁と猫3匹と暮らすフルリモートの三十路SE
- ブリッジSE的なポジションを務めることが多く、チーム運営、顧客折衝、ベンダーコントロールが得意
- 得意言語はSQL、VBA
- 管理や経営にも興味があり、資格で言うと行政書士、社労士もこっそり勉強中
以前、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:2.5.7
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
![](https://odaneko-tec.com/wp-content/uploads/2023/12/image-23-1024x576.png)
Gemfileを作成する
下記のコマンドを実行し、Gemfileを作成します。
エラーメッセージが表示されますが、Gemfileが作成されていれば問題ありません。
type nul > Gemfile
下記の内容でGemfileを編集します。
source 'https://rubygems.org'
gem 'rails', '~> 5.2.4', '>= 5.2.4.2'
![](https://odaneko-tec.com/wp-content/uploads/2023/12/image-24-1024x576.png)
Gemfile.lockを作成する
下記のコマンドを実行し、Gemfile.lockを作成します。
エラーメッセージが表示されますが、Gemfile.lockが作成されていれば問題ありません。
このファイルは編集不要です。
type nul > Gemfile.lock
![](https://odaneko-tec.com/wp-content/uploads/2023/12/image-25-1024x576.png)
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:
![](https://odaneko-tec.com/wp-content/uploads/2023/12/image-26-1024x576.png)
Railsプロジェクトを作成する
下記のコマンドを実行して、コンテナをビルドします。
docker compose build
![](https://odaneko-tec.com/wp-content/uploads/2023/12/image-27-1024x576.png)
下記のコマンドを実行して、Railsプロジェクトを作成します。
docker compose run web rails new . --force --database=mysql --skip-bundle
成功すると、Rails関連のフォルダ・ファイルが生成されます。
![](https://odaneko-tec.com/wp-content/uploads/2023/12/image-28-1024x576.png)
![](https://odaneko-tec.com/wp-content/uploads/2023/12/image-29-1024x576.png)
コンテナを起動する
下記のコマンドを実行して、コンテナを起動します。
また、Gemfileが書き変わりますので、下記のコマンドをもう一度実行します。
docker compose up -d --build
エラーなく終了すればOKです。
![](https://odaneko-tec.com/wp-content/uploads/2023/12/image-31-1024x552.png)
![](https://odaneko-tec.com/wp-content/uploads/2023/12/image-30-1024x552.png)
![](https://odaneko-tec.com/wp-content/uploads/2023/12/image-32-1024x552.png)
DBを作成する
config/database.ymlを編集する
config/database.ymlの17行目付近にあるDBのパスワードとホストの設定を編集します。
# 以下2行を編集
password: pass
host: db
![](https://odaneko-tec.com/wp-content/uploads/2023/12/image-34-1024x576.png)
DBを作成する
下記のコマンドを実行して、DBを作成します。
docker compose exec web rails db:create
![](https://odaneko-tec.com/wp-content/uploads/2023/12/image-35-1024x552.png)
環境が構築できたか確認する
下記のURLを開きます。
問題なく表示されれば、RailsとMySQLのインストールが無事完了しています。
![](https://odaneko-tec.com/wp-content/uploads/2023/12/WS00000033-1024x549.jpg)
以上になります。
お疲れさまでした。