Dockerの公式ドキュメントでRails7系の環境構築をしたら途中で詰まったので、スムーズに構築していく方法を記します✏️
前提条件
開発環境
- M1Mac: Ventura13.0
- Docker Desktopインストール済み
この記事でわかること
✅Dockerの公式ドキュメントに沿ったRails7系の環境構築方法✅
(公式ドキュメント通りに行うとエラーが発生するので、本記事ではその解決方法も記します!)
※ 本記事では、DockerでRails7を最速で環境構築する方法を記します。DockerやRailsの詳しい説明については別記事をご参照ください🙏
環境構築手順
1. 任意のディレクトリを作成
Macの任意の開発スペースにアプリを作成するディレクトリを作成します✅
# mkdir お好きなアプリ名
2. Dockerfileの作成
作成したディレクトリに移動し、vscodeなどのエディタで開きます。
# cd 作成したアプリ名
Dockerfileを作成し以下を記述します✅
Rubyは任意のバージョンにしてください。
FROM ruby:3.2.0
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs
RUN mkdir /myapp
WORKDIR /myapp
ADD Gemfile /myapp/Gemfile
ADD Gemfile.lock /myapp/Gemfile.lock
RUN bundle install
ADD . /myapp
3. GemfileとGemfile.lockの作成
Gemfileを作成し以下を記述します✅
Railsバージョンを指定したい場合このタイミングで記述しておきます。
(バージョン指定がない場合は、最新の安定版になります)
source 'https://rubygems.org'
gem 'rails'
Gemfile.lockは空ファイルで作成します✅
4. docker-compose.ymlの作成
Gemfileを作成し以下を記述します✅
※ こちらの記述が公式ドキュメントと異なります!
Dockerの公式ドキュメントのdocker-compose.ymlをコピペして起動するとエラーになるので注意してください⚠️
version: '3'
services:
db:
image: postgres
environment:
- POSTGRES_PASSWORD=password
- POSTGRES_HOST_AUTH_METHOD=trust
web:
build: .
command: bundle exec rails s -p 3000 -b '0.0.0.0'
volumes:
- .:/myapp
ports:
- "3000:3000"
depends_on:
- db
5. rails new
Railsアプリの雛形を作ります✅
Docker Desktopを起動して、MacのメニューバーにDockerのマークが表示されていることを確認 🐳
↓コマンドを実行すれば、見慣れたRailsのファイル群が生成されます!
docker-compose run web rails new . --force --database=postgresql
6. build実行
Gemfileが書き変わったので↓コマンドを実行します✅
docker-compose build
7. database.yml書き換え
↓のように書き換えます✅
Dockerの公式ドキュメントのdatabase.ymlをコピペして起動するとエラーになるので注意してください⚠️
default: &default
adapter: postgresql
encoding: unicode
host: db
username: postgres
password: password
pool: 5
development:
<<: *default
database: myapp_development
test:
<<: *default
database: myapp_test
8. DBの作成
↓コマンドを実行してDBを作成します✅
docker-compose run web rake db:create
9. 起動!!!
最後に↓コマンドで起動させると、見覚えのある画面が出てきます✅
docker-compose up
参考にさせていただいた記事
最後に
Docker × Railsの環境構築がスムーズにいくことを願ってます🐳🚂