このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Ruby on Railsコンテナ③

Ruby on Railsコンテナ②」の続きです。引き続き、Railsコンテナを構築していきます。

「Ruby on Railsコンテナ」は次の3部に分けて解説していきます。

 ここでは、イメージを再ビルドして、設定ファイル「database.yml」を編集し、Railsコンテナを起動させます。

イメージの再ビルド

イメージを再ビルドします。

・「docker compose build」コマンドを実行します。

PS C:\Users\joeac\Desktop\docker\rails> docker compose build
[+] Building 0.0s (0/0)  docker:default
2024/04/21 22:23:12 http2: server: error reading preface from client //./pipe/docker_engine: file has already been close[+] Building 43.8s (11/12)                                                                               docker:default
 => [web internal] load build definition from Dockerfile                                                           0.0s
 => => transferring dockerfile: 327B                                                                               0.0s

 => => # Fetching sassc 2.4.0
 => => # Fetching rb-inotify 0.10.1

(省略)

 => [web 7/7] RUN bundle install                                                                                  43.9s
 => [web] exporting to image                                                                                       0.6s
 => => exporting layers                                                                                            0.6s
 => => writing image sha256:913ba07716eefa1146098203d276b38d4170304af8e3cecbe924b8f67d4d1308                       0.0s
 => => naming to docker.io/library/rails-web

「database.yml」の編集

設定ファイル「database.yml」を編集します。

「config」ディレクトリの中の「database.yml」を開きます。

railsディレクトリの中身
railsディレクトリの中身
・「code ./config/database.yml」コマンドを実行します。
PS C:\Users\joeac\Desktop\docker\rails> code ./config/database.yml

VS Codeが起動します。

・以下の赤枠を編集します。
  password: <%= ENV.fetch("DATABASE_PASSWORD") %>
  host: db
  port: 3306

コンテナの作成

コンテナを作成する準備ができたので、「docker compose up」コマンドでコンテナを作成します。

・「docker compose up -d」コマンドを実行します。

PS C:\Users\joeac\Desktop\docker\rails> docker compose up -d
[+] Running 2/2
 ✔ Container mariadb_container  Started                                                                            0.0s
 ✔ Container rails_container    Started

Rails用のデータベースの作成

Railsを起動するには、事前にデータベースを用意しておく必要があります。

・「docker compose exec web rake db:create」コマンドを実行します。

「rake db:create」は、Railsに用意されているコマンドです。

項目意味
コマンドdocker compose exec web rake db:create
docker compose execDocker Composeのサブコマンドで、指定されたサービス内でコマンドを実行する。
web実行するコマンドが実行されるサービス名またはサービス定義。
rake db:createRailsアプリケーションで使用されるrakeタスクの1つで、データベースを作成するためのコマンド。データベースの設定に従って、データベースが作成される。この場合は、db:createというタスクが実行される。

 このコマンドは、Docker Composeを使用してRailsアプリケーションのコンテナ内で、データベースを作成するためのrakeタスクを実行します。”web”サービスが実行されているコンテナ内で、データベースが作成されます。

PS C:\Users\joeac\Desktop\docker\rails> docker compose exec web rake db:create
Created database 'samplerails_development'
Created database 'samplerails_test'

Railsコンテナへの接続

少々道のりが長かったですが、これでRailsコンテナを起動させる準備が整いました。

・Webブラウザを起動して、URLに「localhost:3000」と入力します。

RailsのTOPページが表示されました。

これで、Railsの開発環境が整いました。

Railsプロジェクトにプログラムを追加していくことで、Railsアプリケーションの開発ができます。

関連コンテンツ