👏

Rails + PostgreSQL環境の構築

2023/04/15に公開

はじめに

とにかく簡単にDockerとDocker composeを試してみたいという人向けの記事です。
下記の記事を参考にRails + PostgreSQLの環境を構築していきます。
https://docs.docker.jp/compose/rails.html

Dockerfileの作成

ファイル名はDockerfileとしてください。

Dockerfile
FROM ruby
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

Gemfileの準備

GemfileとGemfile.lock(空ファイル)を作成します。

Gemfile
source 'https://rubygems.org'
gem 'rails'

docker-compose.ymlの作成

version: '3.8'
services:
  db:
    image: postgres
    environment:
      - POSTGRES_PASSWORD=password
  web:
    build: .
    command: bundle exec rails s -p 3000 -b '0.0.0.0'
    volumes:
      - .:/myapp
    ports:
      - "3000:3000"
    depends_on:
      - db

docker compose up & run

rails newにより初期化を行います。

docker-compose run web rails new . --force --database=postgresql
sudo chown -R $USER:$USER .
docker-compose build

config/database.ymlの編集

default :&default内に下記を追記します。

  host: db
  username: postgres
  password: password
  pool: 5

docker compose up&run

コンテナをバックグラウンドで起動し、データベースを作成します。

docker-compose up -d
docker-compose run web rake db:create

ウェブページにアクセス

ブラウザのURLにlocalhost:3000を入力してアクセス

コンテナの終了

docker compose down

Discussion