金曜日, 7月 18, 2025
金曜日, 7月 18, 2025
- Advertisment -
ホームニューステックニュース【初心者向け】既存のwebアプリをdocker化して雰囲気掴もうぜ #Docker - Qiita

【初心者向け】既存のwebアプリをdocker化して雰囲気掴もうぜ #Docker – Qiita



【初心者向け】既存のwebアプリをdocker化して雰囲気掴もうぜ #Docker - Qiita

前提

この手順は、Linux 環境(WSL を含む)を前提としています。ディストリビューションは Ubuntu を想定していますが、Debian 系であれば問題ありません。

はじめに

Dockerがなかった頃、たとえば

「フレームワークはRuby on Rails、バックエンドはPostgreSQLで環境構築しておいて」

と言われたらどう感じるでしょうか?

ある程度環境構築に慣れている人なら、

  • ベースとなる言語をインストールして
  • フレームワークの公式を見ながらセットアップして
  • データベースやその他の設定も整えて、困ったら調べながらなんとか進める

と、なんとなく流れはつかめていると思います。

ただ、慣れていない人にとっては、環境構築だけで詰まってしまい、かなりの時間を消耗してしまうこともあります。

実際の現場では一人で開発することは少なく、多くはチームでの開発になります。
そうなると、開発環境の違いによってアプリケーションが動いたり動かなかったり、というズレが発生してしまいます。

  • フレームワークのバージョンが人によって違う
  • データベースの設定が環境ごとに異なる
  • インストールしているパッケージに差異がある

といったことが起こると、誰かの環境では正常に動作しても、別の人の環境ではエラーになるといったことが普通に起こります。

Dockerが解決してくれること

Dockerを使えば、こうした環境差の問題を解決できます。具体的には、

  • チームで同じ開発環境を共有できる
  • 環境構築の手間を最小限にできる

といったメリットがあります。

今回やること

以下のリポジトリを使って、Rails開発環境をDockerで構築していきます。

https://github.com/arunbababa/rails7_docker_template

もちろんこのリポジトリをそのままローカルでセットアップしても動作はしますが、Dockerで整備する方が圧倒的に楽になります。


1. 事前準備:必要なアプリケーションの確認

以下のアプリケーションがインストールされていることを確認してください。コマンドでバージョンが表示されれば問題ありません。

  • Docker

    バージョンが表示されない場合は、こちらからインストールしてください。

  • Docker Compose

    バージョンが表示されない場合は、こちらからインストールしてください。

  • Git

    バージョンが表示されない場合は、こちらからインストールしてください。

2. リポジトリのクローン

git clone https://github.com/arunbababa/rails7_docker_template
cd rails7_docker_template

3. Dockerfileの作成

プロジェクトのルートディレクトリに以下の内容でDockerfileを作成します。

FROM ruby:3.2.2
RUN apt-get update && apt-get install -y \
    build-essential \
    libpq-dev \
    nodejs
RUN mkdir /rails-docker
WORKDIR /rails-docker
COPY Gemfile Gemfile.lock /rails-docker/
RUN bundle install

4. docker-compose.ymlの作成

同じくルートディレクトリに以下の内容でdocker-compose.ymlを作成します。

version: '3'

volumes:
  db-data:

services:
  web:
    build: .
    command: bash -c "rails db:create db:migrate && rails server -b 0.0.0.0"
    ports:
      - '3000:3000'
    volumes:
      - '.:/rails-docker'
    environment:
      - 'POSTGRES_PASSWORD=postgres'
    tty: true
    stdin_open: true
    depends_on:
      - db
    links:
      - db

  db:
    image: postgres
    volumes:
      - 'db-data:/var/lib/postgresql/data'
    environment:
      - 'POSTGRES_USER=postgres'
      - 'POSTGRES_PASSWORD=postgres'

5. database.ymlの修正

もう一つ修正すべきファイルがあります。
image.png

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

default: &default
  adapter: postgresql
  encoding: unicode
  host: db
  username: postgres
  port: 5432
  password: 
  pool: 

development:
  : *default
  database: rails-docker_development

test:
  : *default
  database: rails-docker_test

6. 起動してみよう

準備ができたら、ルートディレクトリで以下のコマンドを実行します。

そしてブラウザで以下を入力します。

すると、以下のような画面が表示されるはずです。

Rails起動画面


おわりに

今回用意したアプリケーション自体はとてもシンプルなものですが、重要なのはそこではありません。

docker-compose up という一つのコマンドでアプリケーションが立ち上がる、
この状態をチームで共有できるということに大きな価値があります。

新しくチームに参加した人も、

  • リポジトリをクローンして
  • docker-compose up するだけ

で、すぐに開発を始められるようになります。

今回は雰囲気をつかんでもらうことを目的に、Dockerfileやdocker-compose.ymlの細かい中身や、database.ymlの書き換え理由には触れませんでしたが、「どんなことができるのか」は体感できたのではないでしょうか。





Source link

Views: 1

RELATED ARTICLES

返事を書く

あなたのコメントを入力してください。
ここにあなたの名前を入力してください

- Advertisment -