Blog

WindowsでDockerを使ってRails環境をサクッと構築する方法!

こんにちは!今回は、WindowsでDockerを使ってRuby on Railsの環境を構築する方法を紹介するね。MacやLinuxとは少し違うけど、Dockerを使えばWindowsでも同じように開発環境を作れるよ。それでは、一緒に手順を確認していこう!

1. Dockerのインストール(Windows版)

まずは、WindowsにDocker Desktopをインストールしよう。これは、DockerのWindows用アプリケーションで、簡単にDocker環境をセットアップできるよ。

Docker Desktopのインストール手順

  1. Docker Desktopを公式サイトからダウンロードしてインストール。
  2. インストール後、Docker Desktopを起動。
  3. WSL 2(Windows Subsystem for Linux 2)が必要なので、インストールガイドに従ってWSL 2を有効にしてね。これがうまくできると、Windows上でLinuxと同じような環境が使えるようになるんだ!

WSL 2 の設定

Docker Desktopの設定画面で「Use the WSL 2 based engine」を有効にしておくと良いよ。これでDockerがWSL 2を使って動作するようになるんだ。

必要なソフトウェアの確認

  • Windows 10(バージョン1903以降)またはWindows 11
  • WSL 2
  • Docker Desktop(上記のリンクから)

2. プロジェクトの準備

次に、プロジェクト用のディレクトリを作っていくよ。WSL 2上で作業するから、Linuxのコマンドを使って進めよう。

mkdir myapp
cd myapp

Dockerfile の作成

次に、アプリケーションの環境を定義する Dockerfile を作成するよ。プロジェクトのルートディレクトリに以下の内容で Dockerfile を作成しよう。

# ベースとなるRubyイメージを指定
FROM ruby:3.2

# Node.jsとYarnのインストール
RUN curl -sL https://deb.nodesource.com/setup_14.x | bash - && \
    apt-get install -y nodejs && \
    npm install -g yarn

# 必要なパッケージをインストール
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev

# 作業ディレクトリを作成
WORKDIR /myapp

# GemfileとGemfile.lockをコピー
COPY Gemfile /myapp/Gemfile
COPY Gemfile.lock /myapp/Gemfile.lock

# Bundlerのインストール
RUN gem install bundler && bundle install

# ポート3000を開放
EXPOSE 3000

# コンテナ起動時にRailsサーバーを起動するコマンド
CMD ["rails", "server", "-b", "0.0.0.0"]

Gemfile の作成

次に、Railsで必要なGemを管理するための Gemfile を作成するよ。

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

その後、空の Gemfile.lock も作成しておこう。

touch Gemfile.lock

3. Docker Composeファイルの作成

次に、docker-compose.yml ファイルを作成して、RailsアプリとPostgreSQLデータベースをまとめて管理できるようにしよう。

version: '3'
services:
  db:
    image: postgres:13
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: password
    volumes:
      - ./tmp/db:/var/lib/postgresql/data
  web:
    build: .
    command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -b '0.0.0.0'"
    volumes:
      - .:/myapp
    ports:
      - "3000:3000"
    depends_on:
      - db
    environment:
      DATABASE_URL: postgres://postgres:password@db:5432/myapp_development

4. Railsプロジェクトの作成

それでは、Railsの新しいプロジェクトを作成してみよう!以下のコマンドを実行して、新規のRailsプロジェクトをセットアップしてね。

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

データベースの設定

生成された config/database.yml ファイルを編集して、PostgreSQLの設定を以下のように更新しよう。

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

development:
  <<: *default
  database: myapp_development

test:
  <<: *default
  database: myapp_test

5. データベースの作成

次に、データベースを作成するよ。以下のコマンドを実行して、データベースを作成しよう。

docker-compose run web rails db:create

6. サーバーの起動

最後に、Railsサーバーを起動してアプリが正しく動くか確認しよう。以下のコマンドでサーバーを起動できるよ。

docker-compose up

ブラウザで http://localhost:3000 にアクセスして、Railsのウェルカムページが表示されれば成功だよ!

まとめ

これで、Windows上でDockerを使ってRails環境を構築する方法がわかったね。最初はちょっと面倒かもしれないけど、一度この環境を作れば、いつでも簡単に開発を始められるよ!Dockerのおかげで環境の違いに悩まされることもなくなるから、とても便利だよ。

質問があったら気軽にコメントしてね。それでは、楽しいRails開発を〜!