はじめに
今回は、rails7の環境構築をしていきます。
Railsの環境構築は、バージョン差異で詰まりがちなので、Dockerを使用していきます。
流れ
- プロジェクトフォルダを作成して必要なファイルを配置
- Railsアプリの雛形を作成
- database設定の変更
- サーバーの起動
事前準備
予めDockerを実行できる環境を用意する必要があります。
以下のような実行環境になるアプリケーションをダウンロードしておきましょう。
コンテナ実行アプリケーションは非常にメモリを消費します。OrbStackが比較的軽量なためこちらを使用していきます。
% brew install --cask orbstack
※Windowsの場合は、公式ページからダウンロードしてからインストールします。
1.プロジェクトフォルダを作成して必要なファイルを配置
以下のコマンドで、プロジェクトフォルダを作成して必要なファイルを配置します。
% mkdir myapp && cd myapp
% touch docker-compose.yml Dockerfile Gemfile Gemfile.lock
以下のファイルは下記のように記述します。
Dockerfile
FROM ruby:3.1.6
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
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
Gemfile
source '<https://rubygems.org>'
gem "rails", "~> 7.0.0", ">= 7.0.0.0"
2.Railsアプリの雛形を作成
以下のコマンドでRailsの雛形を作成して、起動したコンテナを確認します。
% docker-compose run web rails new . --force --database=postgresql
% docker ps
プロジェクトフォルダを配下に雛形のファイルが作成されてコンテナが起動しました。
Gemfileが更新されているのでビルドします。
% docker-compose build
3.database設定の変更
databaseに関する設定を以下の通り変更します。
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
production:
<<: *default
database: myapp_production
username: myapp_1
password: <%= ENV["MYAPP_DATABASE_PASSWORD"] %>
以下のコマンドでDBを作成します。
% docker-compose run web rake db:create
[+] Running 1/0
⠿ Container myapp-db-1 Running 0.0s
Created database 'myapp_development'
Created database 'myapp_test'
4.サーバーの起動
以下のコマンドでサーバーを起動します。
% docker-compose up
http://0.0.0.0:3000にアクセスして以下の画面が確認できました。
参考
以下の記事が参考になりました。ありがとうございました!
クィックスタート: Compose と Rails — Docker-docs-ja 24.0 ドキュメント
【初学者向け】DockerでRails7の環境構築(2023年版) - Qiita
Dockerの公式ドキュメントでRails7系の環境構築をしたら途中で詰まったので、スムーズに構築していく方法を記します✏️前提条件開発環境M1Mac: Ventura13.0Docker …
コメント