0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

初めてDocker化してみたよ!!

Posted at

Dockerを使用したRailsアプリケーションの環境構築ガイド

この記事では、Dockerを使用してRailsアプリケーションとPostgreSQLデータベースをコンテナ化し、ローカル環境で簡単にセットアップする方法を詳しく解説します。本ガイドに従うことで、http://localhost:3000 でRailsアプリケーションにアクセスできるようになります。

目次

  1. 前提条件
  2. リポジトリのクローン
  3. Dockerfileの設定
  4. docker-compose.ymlの設定
  5. コンテナのビルドと起動
  6. まとめ

前提条件

以下のソフトウェアがインストールされていることを確認してください。

  • Git: ソースコードをクローンするために必要です。
  • Docker: コンテナを管理・実行するために必要です。
  • Docker Compose: 複数のコンテナを一括で管理・起動するために必要です。

リポジトリのクローン

まず、プロジェクトのリポジトリをローカルにクローンします。
git clone https://github.com/your-username/rails-docker.git

クローンが完了したら、プロジェクトディレクトリに移動します。
cd rails-docker

Dockerfileの設定

プロジェクトのルートディレクトリにある Dockerfile を設定します。以下はその内容です。

# ベースイメージとして公式のRubyイメージを使用
FROM ruby:3.2.2

# 必要なパッケージをインストール
RUN apt-get update -qq && apt-get install -y nodejs postgresql-client

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

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

# Bundlerをインストール
RUN gem install bundler -v 2.4.10
RUN bundle install

# アプリケーションのソースコードをコピー
COPY . .

# 追加の設定(必要に応じて)
ENV RAILS_ENV=development
ENV RAILS_LOG_TO_STDOUT=true

# ポートを公開
EXPOSE 3000

# サーバーを起動
CMD ["bin/rails", "server", "-b", "0.0.0.0"]

Point

・Rubyの公式イメージ ruby:3.2.2 を使用。
・Node.jsとPostgreSQLクライアントをインストール。
・Gemfile と Gemfile.lock を先にコピーし、依存関係をインストール。その後、アプリケーションのソースコードをコピー。
・環境変数 RAILS_ENV と RAILS_LOG_TO_STDOUT を設定。
・ポート 3000 を公開し、Railsサーバーを起動。

docker-compose.ymlの設定

次に、docker-compose.yml ファイルを設定します。これにより、Webとデータベースのサービスを定義します。

version: "3.8"
services:
  db:
    image: postgres:12
    volumes:
      - db_data:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: myapp
      POSTGRES_PASSWORD: password
      POSTGRES_DB: myapp_development
    ports:
      - "5432:5432"

  # 今回はDB CREATEとMIGRATEを実装しているが本来は初回のみCREATEをするべきだ

  web:
    build: .
    command: bash -c "rm -f tmp/pids/server.pid && bin/rails db:migrate && bin/rails server -b 0.0.0.0 -p 3000"
    volumes:
      - .:/myapp
    ports:
      - "3000:3000"
    depends_on:
      - db
    environment:
      DATABASE_URL: postgres://myapp:password@db:5432/myapp_development?sslmode=disable
      RAILS_ENV: development
      RAILS_LOG_TO_STDOUT: "true"

volumes:
  db_data:

コンテナのビルドおよび起動

設定が完了したら、Dockerコンテナをビルドし、起動します。
docker-compose up
その後ブラウザでhttp://localhost:3000 にアクセスします。

まとめ

Dockerを使用することで、Ruby on RailsアプリケーションとPostgreSQLデータベースの開発環境を効率的に構築できます。本記事では、Dockerfile と docker-compose.yml を設定し、データベースの設定やコンテナのビルド・起動方法を解説しました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?