5分で作れる docker on rails環境
たった5分でRailsに必要な環境を整えることができます。 すべて無料のソフトのみを利用していきます。
Mac上に、Mysqlをインストールするとなると地味に大変だと思うので、 ぜひdockerを使って数回程度の入力操作で快適なrailsLifeを楽しんでください。
完成する環境は以下の通りです。
* rails 5.2.1 * ruby 2.5.1 * Mysql5.7
実行環境
下記以外に事前にインストールが必要なものはありません。
- docker for mac : 18.03.1
必要なファイル
myapp ├──docker-compose.yml ├──Gemfile ├──Gemfile.lock ├──Dockerfile ├──Makefile
ディレクトリ構造で表現すると上記ののようになります。 以降で詳しく説明していきます。
作業場所を作成する
$ mkdir myapp && cd ./myapp
必要なファイルを配置
docker-compose.yml
version: '3' services: db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: pass web: build: . command: bundle exec rails s -p 3000 -b '0.0.0.0' volumes: - .:/myapp ports: - "3000:3000" depends_on: - db
Gemfile
source 'https://rubygems.org' gem 'rails', '5.2.1'
Gemfile.lock
空ファイルの作成のみ
Dockerfile
FROM ruby:2.5.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
Makefile
# rails projectを作成 new: docker-compose run --rm web rails new . --force --database=mysql --skip-bundle # Gem更新したタイミング build: docker-compose build # rails 起動 up: rm -rf tmp/pids/server.pid docker-compose up # db作成 db/create: docker-compose run web rake db:create # TOPページを作ってみよう generate/controller_hoge_top: docker-compose run spring rails generate controller home top help: cat ./Makefile
コマンドの実行
make new
このコマンドによりrails new
が実行されます
config/database.yml
database.ymlを編集します。
default: &default adapter: mysql2 encoding: utf8 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: root password: pass host: db development: <<: *default database: myapp_development
コマンドの実行
$ make build
このコマンドによりbundle install
が実行されます
$ make up
このコマンドによりrails s
が実行されます
$ make db/create
このコマンドにより、databaseが作成されます。
ブラウザで確認
ブラウザでlocalhost:3000
を確認するとYay! You’re on Rails!
が表示されます。
dockerに関するオススメ書籍
dockerについて、もう少し勉強したい人にオススメです! 最近は特に流行っているので、抑えておいて間違い無しの技術です♩
プログラマのためのDocker教科書 インフラの基礎知識&コードによる環境構築の自動化
- 作者: WINGSプロジェクト阿佐志保
- 出版社/メーカー: 翔泳社
- 発売日: 2015/11/19
- メディア: Kindle版
- この商品を含むブログ (3件) を見る
- 作者: 山田明憲
- 出版社/メーカー: 技術評論社
- 発売日: 2018/08/25
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
次回
次回は、docker on railsを利用した、WEBAPIの実装を書いていこうと思います:)