8
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【初心者用】Docker を用いた Ruby on Rails の環境構築

Posted at

この記事は、初心者、説明なしにとりあえず環境構築したい、といった方を対象にしています。
そのため、画像付きで説明しますが細かな説明は省いています。

PC環境

  • MacBook Pro (M1 Max, 2021)
  • mac OS Monterey (ver 12.5)
  • SSD 2TB
  • RAM 32GB

参考記事・進め方

今回はこちらの記事を参考にさせていただき、全く同じ手順で行っています。
https://kiyobl.com/rails-docker-basic/

Docker Desktop の インストール

初めに、dockerのHPからお使いのPCに合わせて、デスクトップアプリをインストールします。
https://www.docker.com/
↑こちらをクリックすると、dockerのHPに飛びます。
スクリーンショット 2023-04-07 15.45.14.png
・Windows
・Mac OS(Intel Chip)
・Mac OS(Apple Chip)
・Linux
の4種類からお使いのPCに応じてインストールしてください。
私はApple M1を使っていますので、Mac OS(Apple Chip)をインストールすることになります。

スクリーンショット_2023-04-07_15_54_20.png
アプリを起動してこんな感じのが出るといいのではないかと。

Ruby on Rails の インストール

初めに、Ruby on Railsを構築するディレクトリを作成します。
スクリーンショット_2023-04-07_16_09_10.png
こんな感じで、作業フォルダの作成。

続いて、ターミナル あるいは コマンドプロンプトを使用して、下記コマンドを用いて作業ディレクトリまで移動します。

cd ~/documents/rails/app1

スクリーンショット_2023-04-07_16_38_35.png

作業ディレクトリまで移動し、下記コマンドでGemfileを作成します。

touch Gemfile

スクリーンショット_2023-04-07_17_11_38.png
Gemfileが作成されるのを確認します
スクリーンショット_2023-04-07_17_13_56.png

同様にGemfile.lock、Dockerfile、docker-compose.ymlを作成します。

touch Gemfile.lock
touch Dockerfile
touch docker-compose.yml

スクリーンショット_2023-04-07_16_18_14.png
最終的にこんな感じで4つファイルが生成されているといいかと思います。

Gemfileをクリックします。
スクリーンショット_2023-04-07_17_13_56-2.png
Gemfileを開き、下記を入力。

Gemfile
source "https://rubygems.org"
gem "rails", "~> 7.0.4", ">= 7.0.4.2"

スクリーンショット 2023-04-07 17.30.06.png
入力後、保存します。

同様にDockerfile、docker-compose.yml(エディターを使用)を開き、下記を入力します。

Dockerfile
FROM ruby:3.1

WORKDIR /app1

COPY Gemfile /app1/Gemfile
COPY Gemfile.lock /app1/Gemfile.lock

RUN bundle install

CMD ["rails", "server", "-b", "0.0.0.0"]
docker-compose.yml
version: '3'
services:
  db:
    platform: linux/amd64
    image: mysql:5.7
    volumes:
      - data-volume:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: password
    ports:
      - "3306:3306"
  web:
    build: .
    volumes:
      - .:/app1
    ports:
      - 3000:3000
    depends_on:
      - db

volumes:
  data-volume:

以下のようになってるといいかと。
スクリーンショット_2023-04-07_17_41_33.png
スクリーンショット_2023-04-07_17_43_41.png

ターミナルから、以下のコマンドを入力します。

docker-compose build

続いて以下のコマンドを入力します。

docker-compose run --rm web rails new . --database=mysql

上記2つのコマンドを打ってしばらくすると、以下のように作業ディレクトリ内に多くのファイルなどが新たに入っていることを確認します。
スクリーンショット_2023-04-07_17_47_47.png

そしたら、configファイル > database.yml を選択し、default部分のpassword と host を docker-compose.yml に書いたものと合わせます。
スクリーンショット_2023-04-07_17_50_46.png

database.yml
default: &default
  adapter: mysql2
  encoding: utf8mb4
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: root
  password: password
  host: db

終了後、ターミナルから

docker-compose build
docker-compose up -d
docker-compose run web rails db:create

 の順に打ちます。

順調に進んだら、Google chromeやSafariなどのブラウザを開き、リンク欄から「 http://localhost:3000 」を入力します。
スクリーンショット_2023-04-07_18_02_31.png

上手くいくと、こんな感じで表示されます。
スクリーンショット_2023-04-07_18_05_33.png

これで環境構築は完了になります。

補足

上記のコマンドやファイルの具体的な詳細については、以下の記事を参考にしていただけるといいかと思います。

8
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?