✌️

たった10分でdocker + docker-compose + railsの環境構築!!

2021/08/23に公開

前提条件

事前確認

  • version確認

    ターミナルで以下のコマンドを入力する。

    1. docker version

    2. docker-compose version

      バージョンは違っていてもエラーが出ていなければ大丈夫です!!

    3. docker run --rm hello-worldを実行後、下図のように実行できればdockerの準備はOKです!!

docker環境の構築

まずは、Railsプロジェクトがルートフォルダに移動する。(ご自身の環境に合わせてください)
cd hoge/fuga

Dockerfileの作成

  1. mkdir -p docker/rails
  2. cd docker/rails
  3. touch Dockerfile

Dockerfileの編集

Dockerfile
# ご自身のRubyのバージョンに合わせてください
FROM ruby:2.6.5
RUN apt-get update -qq && \
  apt-get install  -y --no-install-recommends \
  build-essential \
  default-mysql-client \
  less \
  nodejs \
  && apt-get clean \
  && rm -rf /var/lib/apt/lists/*

# ご自身のアプリ名にすると良い(任意)
ENV APP_ROOT /example

USER example_user

# Set working directory as APP_ROOT
WORKDIR $APP_ROOT

# Add Gemfile
COPY Gemfile* ./

# Install Gemfile's bundle
RUN bundle install
COPY . ./
EXPOSE 3001

docker-compose環境の構築

Railsプロジェクトのルートフォルダに移動する。(ご自身の環境に合わせてください)
cd hoge/fuga

docker-compose.ymlの作成

touch docker-compose.yml

docker-compose.ymlファイルの編集

docker-compose.yml
version: "3.8"
services:
  app:
    build:
      context: .
      dockerfile: ./docker/rails/Dockerfile
    command: bash -c "rm -f tmp/pids/server.pid && rails s -b 0.0.0.0"
    tty: true
    stdin_open: true
    depends_on:
      - db
    volumes:
      - .:/example
      - tmp-data:/example/tmp
    ports:
      - "3001:3000"
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: admin
    volumes:
      - mysql-data:/var/lib/mysql
    ports:
      - "3306:3306"

volumes:
  mysql-data:
  tmp-data:

database.yml修正

hostpassworddocker-compose.ymlでに記載しているサービス名db
環境変数に設定しているMYSQL_ROOT_PASSWORDの値を設定する

database.yml
default: &default
  adapter: mysql2
  encoding: utf8
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: root
  password: admin
  host: db

開発環境の構築

  1. DB作成
    docker-compose run --rm app rails db:setup

  2. docker imageの作成&コンテナ起動
    docker-compose up

  3. コンテナの停止
    docker-compose down

  4. 確認
    ブラウザにlocalhost:3001を入力しRailsアプリの画面が開けばOKです。

ざっくり10分で開発環境の構築をしたので細かい話は、需要がありそうなら書いていこうと思います (^^;)

GitHubで編集を提案

Discussion