3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Docker-composeを使ってRailsの環境構築をする

Last updated at Posted at 2020-04-09

今回はDocker-composeを使ってRailsの環境構築をする方法をまとめました!
Dockerは既に導入しているということを前提とします。
今回は特に説明等を書かずに環境構築する方法だけをまとめています。

#1.ファイル構成

・Dockerfile
・docker-compose.yml
・Gemfile
・Gemfile.lock

また各ファイルの中身は

Dockerfile.
FROM ruby:2.5.1
RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - && apt-get update && apt-get install -y nodejs --no-install-recommends && rm -rf /var/lib/apt/lists/*
RUN mkdir /app_name

ENV APP_ROOT /app_name
WORKDIR $APP_ROOT

ADD ./Gemfile $APP_ROOT/Gemfile
ADD ./Gemfile.lock $APP_ROOT/Gemfile.lock

RUN bundle install
ADD . $APP_ROOT
docker-compose.yml
version: '3'
services:
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: root
    ports:
      - "3306:3306"

  web:
    environment:
      - SPROCKETS_CACHE=/cache
    build: .
    command: bundle exec rails s -p 3000 -b '0.0.0.0'
    volumes:
      - .:/app_name
    ports:
      - "3000:3000"
    links:
      - db

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

Gemfile.lockは空で大丈夫です

#2.Railsのプロジェクトを作成する

docker-compose run web rails new . --force --database=mysql --skip-bundle

docker-composeコマンドを使用し、rails newを実行します。

#3.DBの設定をする

作成したらconfigというファイルがあるのでその中のdatabese.ymlを変更していきます

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

#4.Docker-composeを起動します

# 1.コンテナをビルドする
$ docker-compose build

# 2.コンテナの作成&起動
$ docker-compose up 
# 2.コンテナの作成&起動(バックグラウンドでの起動)
$ docker-compose up -d

#3.DBの作成をする
$ docker-compose run web rails db:create

#4.DBをmigrateする
$ docker-compose run web rails db:migrate

#5.localhostに接続
localhost:3000に接続して
image.png
この画面がでれば成功!!
お疲れ様です。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?