Rails のアプリケーション環境をサクッと立ち上げるために Application Template を用意してみました。特徴としては, slim, rspec 初期化, rubocop の設定等々です。

https://gist.github.com/yterajima/827903535cd97894df74c385fcdc30b4

環境構築

docker-compose 環境の用意

Web サーバーなし, MySQL と Redis の image をベースに。

version: '3'
services:
  app:
    image: fillininc/rails:2.6.3-18.04
    volumes:
      - .:/opt/app
      - bundle:/usr/local/bundle
    ports:
      - 3000:3000
    stdin_open: true
    depends_on:
      - db
      - redis
  db:
    image: mysql:8.0
    command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci
    volumes:
      - database:/var/lib/mysql
    ports:
      - 3306:3306
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: app_development
      TZ: Asia/Tokyo
  redis:
    image: redis:5.0
    ports:
      - 6379:6379

volumes:
  database:
  bundle:

Gemfile を用意

source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

gem 'rails', '~> 5.2.3'

Gem のインストール

$ docker-compose run --rm app

起動した app 内の bash で下記コマンドを実行。

-m に指定する URL は https://gist.github.com/yterajima/827903535cd97894df74c385fcdc30b4 の RAW。バージョンに注意。

$ bundle i --without production
$ bundle exec rails new . -d mysql -m https://gist.githubusercontent.com/yterajima/827903535cd97894df74c385fcdc30b4/raw/57832fecc737c9d03efbee85da06c29e363d66c4/template.rb

実行完了後に exit

起動

  • db/database.yml を環境に合わせ編集
  • $ docker-compose up -d で起動

作ってみて

gem_group が既存の group に対して追加ではなく Gemfile に追記していくのがちょっと不満。しかし結局はコメントの削除や並び替えを行うので問題はない。