Dockerを使ったRails APIの開発環境の構築手順
※※※注意※※※
この記事はChatGPTにベースを書いてもらっています。
こんにちは、開発者の皆さん!
今回はDockerを使ってRails(APIモード)の開発環境を構築する方法をお伝えします。
1. 必要なソフトウェアのインストール
まずは、DockerとDocker-composeをインストールします。
公式サイトからそれぞれのインストーラをダウンロードしてインストールしましょう。
[追記]
Docker DesktopをインストールでOKです。
2. プロジェクトディレクトリの作成
次に、プロジェクトのディレクトリを作成します。以下のコマンドを実行します。
mkdir myapp && cd myapp
3. Dockerの設定
Dockerfileの作成
次に、以下の内容でDockerfileを作成します。
# ベースとなるDockerイメージ指定
FROM ruby:2.7.2
# 必要なパッケージのインストール
RUN apt-get update -qq && apt-get install -y nodejs postgresql-client
# ワーキングディレクトリの作成
RUN mkdir /myapp
WORKDIR /myapp
# ホストのGemfileとGemfile.lockをコピー
COPY Gemfile /myapp/Gemfile
COPY Gemfile.lock /myapp/Gemfile.lock
# bundlerのインストールとbundle installの実行
RUN gem install bundler
RUN bundle config set force_ruby_platform true
RUN bundle install
docker-compose.ymlの作成
次に、以下の内容でdocker-compose.ymlを作成します。
version: '3'
services:
db:
image: postgres
volumes:
- ./tmp/db:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: postgres
web:
build: .
command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
volumes:
- .:/myapp
ports:
- "3000:3000"
depends_on:
- db
これにより、Railsのサーバーを3000ポートで起動し、データベースにはPostgresを使用する設定になります。
Gemfileの作成
次に、Gemfileを作成します。
Gemfileとは、Railsで必要なgemライブラリをまとめたファイルのことです。
source 'https://rubygems.org'
gem 'rails', '7.0.6'
Gemfile.logの作成
次に、Gemfile.lockを作成します。
Gemfile.lockは、Gemfileを元にインストールされたgemライブラリの情報が記載されたファイルです。
touch Gemfile.lock
4. Rails APIの作成
Dockerを使ってRails APIを作成します。以下のコマンドを実行します。
docker-compose run web rails new . --force --no-deps --database=postgresql --api
5. データベースの設定
Railsのデータベース設定を行います。config/database.ymlを以下のように修正します。
default: &default
adapter: postgresql
encoding: unicode
host: db
username: postgres
password: postgres
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
development:
<<: *default
database: myapp_development
test:
<<: *default
database: myapp_test
次に、データベースを作成します。
docker-compose run --rm web bash -c 'bundle exec rails db:create && \
bundle exec rails db:migrate'
6. コンテナのビルドと起動
最後に、コンテナをビルドし、起動します。
docker-compose build
docker-compose up
[追記]
起動後に下記URLが開ければ成功です。
http://0.0.0.0:3000/
以上で、Dockerを使ったRails APIの開発環境の構築が完了しました。
この環境を使えば、どのマシンでも同じ条件で開発を進めることができます。
今後も効率的な開発を進めていきましょう!
あとがき
開発部内でフロントとバックを分けて開発したいね、と話をしていたので、その事前勉強という意味合いでRailsを使ったAPIの開発環境を構築してみました。
まだ中身は空っぽなので、次回以降肉付けしていきたいです。
にしても、今日のChatGPTは元気いっぱいでしたね。かわいい。
では、お疲れ様でした!