バナー画像

「Ruby on Rails」は、RubyのWebフレームワークの唯一の選択肢と言ってもいいほど、RubyのWeb開発でよく利用されています。

Rubyは、定額で映画やドラマ・アニメが見放題の「hulu」や、民泊のマッチングサービスである「Airbnb」など、日々膨大なトラフィックを処理しているで大手企業でも利用されています。

「Ruby on Rails」を使うと、他のプログラム言語より素早くWebサイトや業務システムが開発できると言われています。この記事では「Ruby on Rails」の開発環境を素早く構築し、Git Hubに作成したアプリを公開(プライベートな非公開でもOK)する方法を解説します。

DockerでRuby on Rails開発環境を作る

今回は、Mac + Docker環境でRuby On Rails開発環境を作ってみましょう。
Dockerは、コンテナを用いてアプリをすばやく開発、テスト、デプロイでる技術です。

また、エディタはDockerの起動・停止が容易に行える Visual Studio Code(以降はVSCodeと表記)を使用します。

Dockerのインストール

まずは、Dockerをインストールします。
Dockerの公式サイトにアクセスし、[Get Docker]をクリックしてインストーラーをダウンロードします。

https://hub.docker.com/editions/community/docker-ce-desktop-mac

インストーラーは約 500MBほどサイズがあります。ダウンロードが完了したら「Docker.dmg」ファイルを実行して画面に沿ってインストールを行います。

インストールが完了したら、ターミナルを起動し次のコマンドを入力し、Dockerが正常にインストールされているか確認します。

$ docker version
Client: Docker Engine - Community
 Cloud integration: 1.0.2
 Version:           19.03.13
 API version:       1.40
 Go version:        go1.13.15
 Git commit:        4484c46d9d
 Built:             Wed Sep 16 16:58:31 2020
・・・

VSCodeのDocker拡張機能をインストール

次は、VSCodeのDocker拡張機能をインストールします。
拡張機能を使用すると、GUI上で、Dockerコンテナ管理、起動・停止を容易に行うことができます。

VSCodeのサイドメニューより[拡張機能]を選択し、検索窓に「docker」と入力します。検索結果の先頭に表示された、Microsoft製のDocker拡張機能をインストールします。

Ruby on Rails開発環境を構築する

DockerとVSCodeのDocker拡張機能がインストールできたら、次はいよいよRuby on Rails開発環境を作りましょう。

Rails開発環境の構築方法は、Dockerの公式ドキュメントでも紹介されているので、それに沿って解説していきます。

まずRails開発プロジェクト用に、任意の名前でディレクトリを作成します。今回は「rails_sample」というフォルダを作成し、そこにDocker環境とRuby on Rails開発環境を作成します。

mkdir rails_sample
cd rails_sample

プロジェクトフォルダ直下(今回はrails_sample)にDockerfileという名前でファイルを作成し、次のようにRubyコンテナの定義をします。

FROM ruby:3.0
RUN apt-get update -qq && apt-get install -y nodejs postgresql-client
RUN mkdir /myapp
WORKDIR /myapp
COPY Gemfile /myapp/Gemfile
COPY Gemfile.lock /myapp/Gemfile.lock
RUN bundle install
COPY . myapp

# Add a script to be executed every time the container starts.
COPY entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/entrypoint.sh
ENTRYPOINT ["entrypoint.sh"]
EXPOSE 3000

# Start the main process.
CMD ["rails", "server", "-b", "0.0.0.0"]

Gemfileという名前でファイルを作成し、railsを依存関係に追加しbundle installでインストールされるようにします。

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

ターミナル上で次のコマンドを入力し、Gemfile.lockを作成します。Gemfile.lockの中身は空で何も入力しません。

touch Gemfile.lock

Docker起動時に実行されるスクリプトを、entrypoint.shというファイル名で作成します。

#!/bin/bash
set -e

# Remove a potentially pre-existing server.pid for Rails.
rm -f /myapp/tmp/pids/server.pid

# Then exec the container's main process (what's set as CMD in the Dockerfile).
exec "$@"

さいごに、次の内容でdocker-compose.ymlファイルを作成します。今回はデータベース用にpostgresコンテナも作成します。

version: "3.9"
services:
  db:
    image: postgres
    volumes:
      - ./tmp/db:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: password
  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

これで「Rails」を動かすためのファイルの準備は完了です。ターミナルで次のrails newコマンドを入力して、Railsプロジェクトを作成しましょう。

docker-compose run --no-deps web rails new . --force --database=postgresql

上のコマンドを実行すると、「Rails」プロジェクトに必要なファイル群が作成され、VSCodeのファイルツリーが次のようになります。

これで「Rails」を動かすためのDockerコンテナの準備は完了です。さっそくコンテナ を起動してみましょう。

VSCodeのファイルツリーから、docker-compose.ymlを選択し、右クリックメニューの[Compose Up]をクリックし、コンテナを起動します。

Railsでは、デフォルトで使用するデータベースはSQLiteになっているため、config/database.ymlを次のように編集して、postgresqlを使用するように変更します。

default: &default
  adapter: postgresql
  encoding: unicode
  host: db
  username: postgres
  password: password
  pool: 5
・・・

config/database.ymlを編集したら、コンテナを再起動します。

次のコマンドでデータベースを作成します。

docker-compose run web rake db:create

ブラウザでhttp://localhost:3000/にアクセスし、次のような画面が表示されれば、Rails開発環境の作成が成功です。

GitHubへ作成したソースをプッシュ

ここからは、作成したRailsプロジェクトを、GitHubにプッシュする方法を解説します。

GitHubにリポジトリを作成

まず。GitHub上にログインして、作成したRailsプロジェクトをプッシュするリポジトリを作成します。個人のトップページから「New」ボタンをクリックしてリポジトリの作成ページに移動します。

リポジトリ名や、公開範囲(Public:すべての人に公開、Private:自分や許可した人だけに公開)を設定し[Create Repository]ボタンをクリックします。

ポテパンダの一言メモ

以前のGitHubは、Publicリポジトリは無料、Privateリポジトリは有料でしたが、現在はPrivateリポジトリも無料で利用できます。

ターミナルからGitHubにプッシュ

ターミナルで「rails_sample」フォルダに移動し、次のコマンドを入力してGitリポジトリの初期化を行います。

$ git init

次に、git remote addでGitHutに作成したリモートリポジトリを追加し、GitHubへ作成したソースをプッシュします。

$ git remote add origin <作成したリポジトリのURL>
$ git push -u origin master
$ git push --all

データベースのユーザー名・パスワードなど、機密情報をGitHubのリポジトリに登録したくないば場合は.gitignoreファイルを作成し、そこにGitHubリポジトリに登録したくないファイルのパスを追加します。

/config/database.yml

さいごに

DockerでRuby on Rails開発環境を作る方法と、作成したプロジェクトをGitHubへ登録する方法を解説してきました。

無料で手軽に作れるRuby on Rails開発環境で、Webアプリを作ってみてはいかがでしょうか。

【関連記事】
GUIで簡単操作!GitHub Desktopを解説します

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。