新規ディレクトリを作成→ディレクトリに移動
$ mkdir myapp
$ cd myapp
Dockerfileを作成し、中身を記述
$ touch Dockerfile
FROM ruby:2.5.3
# RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs
RUN apt-get update -qq
RUN apt-get install -y build-essential
RUN apt-get install -y libpq-dev
RUN apt-get install -y nodejs
# ワーキングディレクトリの設定
RUN mkdir /myapp
WORKDIR /myapp
# gemfileを追加する
ADD Gemfile /myapp/Gemfile
ADD Gemfile.lock /myapp/Gemfile.lock
# gemfileのinstall
RUN bundle install
ADD . /myapp
Gemfileを作成
$ touch Gemfile
Gemfile内を下記の内容に書き換える
source 'https://rubygems.org'
gem 'rails', '5.2.1'
空のGemfile.lockの作成
$ touch Gemfile.lock
docker-compose.yml作成
version: '3'
services:
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: root
web:
build: .
command: bundle exec rails s -p 3000 -b '0.0.0.0'
volumes:
- .:/myapp
ports:
- "3000:3000"
links:
- db
Rails new の実行
$ docker-compose run web rails new . --force --database=mysql --skip-bundle
DBhostを修正
default: &default
adapter: mysql2
encoding: utf8
pool: 5
username: root
password: root # docker-compose.ymlのMYSQL_ROOT_PASSWORD
host: db # docker-compose.ymlのサービス名
Dockerの起動
$ docker-compose build # コンテナをビルド
$ docker-compose up # コンテナの一斉起動
DBの作成
$ docker-compose run web rails db:create
ブラウザで確認
http://localhost:3000/
