3
2

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】Quickstart : Compose and Rails やってみた

Last updated at Posted at 2021-07-27

概要

DockerでRails5に対応したRuby on Railsの環境構築を行いました。
このクィックスタートでは Docker Compose を使って、
簡単な Rails/PostgreSQL アプリを設定することができます。
学んだ一連の流れをまとめておきます。
(一番下にDockerのコマンド一覧も掲載しております!)

前提としてDockerとcomposeのインストールができている状態とします。
まだの人はこちらを参考にして下さい。
【図解】Dockerの全体像を理解する -前編-
いまさらだけどDockerに入門したので分かりやすくまとめてみた
【入門】はじめての Docker Desktop for Mac のインストールと CentOS の仮想環境構築のセットアップ

環境

・MacOS Apple M1 バージョン11.4
Docker 20.10.7
Ruby 2.5.9
Rails 5.2.6

ー参考資料ー

・公式ドキュメントQuickstart: Compose and Rails
クィックスタート: Compose と Rails
DockerのQuickstart:Compose and Railsをやってみた

手順

インストールができている確認

docker
% docker version

Client:
 Cloud integration: 1.0.17
 Version:           20.10.7
 API version:       1.41
 Go version:        go1.16.4
 Git commit:        f0df350
 Built:             Wed Jun  2 11:56:23 2021
 OS/Arch:           darwin/arm64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.7
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       b0f5bc3
  Built:            Wed Jun  2 11:55:36 2021
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          1.4.6
  GitCommit:        d71fcd7d8303cbf684402823e425e9dd2e99285d
 runc:
  Version:          1.0.0-rc95
  GitCommit:        b9ee9c6314599f1b4a7f497e1f1f856fe433d3b7
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
dockercompose
% docker compose

Docker Compose version v2.0.0-beta.6

Dockerを使ったRuby on Railsの環境構築

Dockerとcomposeのインストールが完了したのでDockerを用いたRuby on Railsの環境構築を行います。

DockerでRuby on Railsの環境を構築するプロジェクトのディレクトリを作成し移動します。
今回はmyappとします。

% cd myapp

4つのファイルを準備

⑴ docker-compose.yml
⑵ Dockerfile
⑶ Gemfile
⑷ Gemfile.lock

⑴ docker-compose.yml

docker-compose.ymlというファイル名をVScodeに作成します。

以下を記述↓↓

docker-compose.yml
version: '3'
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

⑵ Dockerfile

次に、Dockerfileというファイル名をVScodeに作成します。

以下を記述↓↓

Dockerfile
FROM ruby:2.5
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を動かす記述が完了しました。

⑶ Gemfile

次に、Gemfileというファイル名をVScodeに作成します。

以下を記述↓↓

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

⑷ Gemfile.lock

次に、Gemfile.lockというファイル名をVScodeに作成します。
この時、Gemfile.lockは空にしておきます。

Gemfile.lock
# 記述なし

これで4つのファイルの作成が完了しました。

上記4つのファイルを作ったうえで、コマンドをうっていきます。

% docker-compose build   

これでDockerfileのファイル内の記述を実行します。

次に以下のコマンドでrails new をします。

% docker-compose run web rails new . --force --database=postgresql

これでダウンロードが完了したら、次にGemfileが更新されたので
再度以下のコマンドを実行します。

% docker-compose build   

Ruby on RailsのDB設定

config/database.yml を以下に書き換えます。

config/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
  password: <%= ENV['MYAPP_DATABASE_PASSWORD'] %>

DBを作成

次に書き換えたDBを作成します。

% docker-compose run web rails db:create

コンテナを起動

最後にコンテナを起動させます。

% docker-compose up

http://localhost:3000/ にアクセスします。

スクリーンショット 2021-07-21 16.38.00.png

この画面が出てきたら成功です!

これでDockerでRuby on Railsの環境構築が完了です!
簡単な Rails/PostgreSQL アプリを設定することができました!

以下はDokerの開発に必要なコマンド一覧を残しておきます。

Dockerで使用するコマンド一覧

コマンド 動作 補足
docker ps   稼働コンテナの一覧表示
docker ps -a すべてのコンテナを表示
docker run コンテナの生成/起動
docker stats コンテナの稼働確認
docker start コンテナの起動
docker stop コンテナの停止
docker restart コンテナの再起動
docker rm コンテナの削除
docker pause コンテナの中断/再開
docker version   Dockerのバージョン確認
docker info Dockerの実行環境確認
docker commit コンテナからイメージ作成
docker save イメージの保存
docker build -t DockerfileからDockerイメージの作成

以上となります。

Dockerコマンドはまだまだたくさんあります。
今後、Dockerの開発が進むにつれて、都度更新していきます。

学習頑張っていきましょう!!

3
2
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
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?