今回は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