Skip to content

RyoichiNakai/rails-api-mysql-template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rails API and MySQL Docker Template

概要

Rails6.0のAPIモードとMySQL5.7を接続するためのDockerテンプレート

image

Docker環境構築&基本操作

.envの作成

以下のように.envに必要な項目を記述する

MYSQL_ROOT_PASSWORD={ルートパスワード}
MYSQL_DATABASE={DBの名前}
MYSQL_USER={MySQLユーザ名}
MYSQL_PASSWORD={MySQLパスワード}
  • MYSQL_USER=rootとしてしまうと 後述のdocker-compose時に怒られるので,避けるようにすること
  • docker-compose.ymlと同じ階層で作成するようにこと

Dockerを使えるかの確認

docker/docker-composeが使えるかの確認

docker -v
docker-compose -v

dockerが使えない場合は,こちら からDocker for Desktopをインストール
docker-composeを使えない場合は,以下のコマンドを使用して,インストール

brew install docker-compose

※ Homebrewは事前にインストールしておいてください

イメージをビルド

api/Dockerfileを利用して,Ruby2.7環境のイメージを作成
キャッシュを反映させたくない場合は,下のコマンドを実行する

docker-compose build
# docker-compose build --no-cache

後述のdocker-compose up時にビルドが走るので,しなくてもいい

コンテナを立ち上げる

コンテナの立ち上げ

docker-compose up

コンテナの一覧を表示する
Container IDをコピーしておく

docker ps -a

コンテナの中に入る

docker exec -it [Container ID] bash

初回実行の際は,後述のDBの生成を必ず行うこと

コンテナを停止する(Docker for DesktopでGUI上でコンテナやイメージを削除することも可能)

docker-compose down

Railsの操作

初回コンテナ立ち上げ時に必ず行うこと

コンテナを立ち上げ、コンテナの中に入ってから以下のコマンドを実行して、MySQLとの接続を行う

rails db:create

コンテナの中から操作

  • サーバの起動
    • -b0.0.0.0をバインドしないと,コンテナ外からアクセスできない
rails s -b 0.0.0.0
  • ルーティングの確認
rails routes
  • DBマイグレーション
rails db:migrate
  • モジュールをインストール
bundle install
  • モデルの作成
rails g model {作成したいモデル名(単数系)}
  • コントローラの作成
rails g controller {作成したいコントローラ名(複数形)}
  • マイグレーションファイルの作成
rails g migration {マイグレーションのクラス名}
  • MySQLへの接続
rails db

コンテナの外から操作

docker-compose run api {実行したRailsのコマンド}

Rails APIについて

基本的な操作

Railsで超簡単API
https://qiita.com/k-penguin-sato/items/adba7a1a1ecc3582a9c9

RubocopとSolargraph

RubocopはRubyのコード整形ツールで、以下のようにコードが汚い時は、指摘してくれたり、自動修正を行ってくれます

image

またSolargraphはRubyのコード保管ツールです

使用方法

Docker環境なので、ローカル環境のターミナルで以下のコマンドを実行し、2つのツールを使用

rbenvのインストール

すでにインストールしている場合は、1つ目のコマンドのみ実行
インストールしていない場合は、こちらに使い方が記載されています

brew update && brew upgrade ruby-build
brew install rbenv

local環境にapi/.ruby-versionと同じバージョンをインストール

rbenv install 2.7.4
rbenv global 2.7.4

必要なパッケージをインストール

gem install rubocop
gem install rubocop-performance
gem install rubocop-rails
gem install solargraph

VSCodeで以下のプラグインをインストール

  • Ruby
  • Ruby on Rails
  • endwise
  • ruby-rubocop
  • Ruby Solargraph