概要
この記事では、既存のRailsアプリケーションにDockerを導入する方法について記述致します。
前提条件
- Dockerがインストールされていること
- Docker Composeがインストールされていること
- Railsアプリケーションが作成済みであること
手順
1. Dockerfileの作成
プロジェクトのルートディレクトリにDockerfile
という名前のファイルを作成します。そして、以下の内容を記述致します。
下記、1行目のrubyの末尾
には、使用バージョン
、myapp
のところには、お使いのアプリ名
に変更し、記述して下さい。
Dockerfile
FROM ruby:2.7.1
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs
RUN mkdir /myapp
WORKDIR /myapp
COPY Gemfile /myapp/Gemfile
COPY Gemfile.lock /myapp/Gemfile.lock
RUN bundle install
COPY . /myapp
2. Docker Composeの設定
次に、docker-compose.yml
ファイルをプロジェクトのルートディレクトリに作成致します。
以下は、dbにPostgreSQL
を使用している場合の例です。
docker-compose.yml
version: '3'
services:
db:
image: postgres
volumes:
- ./tmp/db:/var/lib/postgresql/data
web:
build: .
command: bundle exec rails s -p 3000 -b '0.0.0.0'
volumes:
- .:/myapp
ports:
- "3000:3000"
depends_on:
- db
3. Docker Composeのビルドと起動
以下のコマンドを実行し、Docker Composeをビルドし、起動致します。
docker-compose build
docker-compose up
まとめ
以上で、既存のRailsアプリケーションにDockerを導入する手順を記述させて頂きました。
この手順により、開発環境を容易に構築・共有することが可能になります。