WindowsでDockerを使ってRails環境をサクッと構築する方法!
こんにちは!今回は、WindowsでDockerを使ってRuby on Railsの環境を構築する方法を紹介するね。MacやLinuxとは少し違うけど、Dockerを使えばWindowsでも同じように開発環境を作れるよ。それでは、一緒に手順を確認していこう!
1. Dockerのインストール(Windows版)
まずは、WindowsにDocker Desktopをインストールしよう。これは、DockerのWindows用アプリケーションで、簡単にDocker環境をセットアップできるよ。
Docker Desktopのインストール手順
- Docker Desktopを公式サイトからダウンロードしてインストール。
- インストール後、Docker Desktopを起動。
- 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開発を〜!