前回の記事の続きです。
前回の記事
前回は作成したテンプレートの紹介でした。
今回は前回の記事で作成したテンプレートを使って実際にRailsアプリ開発環境を作っていきます。
タイトルは紛らわしいのであとで変更するかもしれません。
使用するテンプレートは下記のリポジトリです。
動かし方
最低限のそれはGitHubのREADMEに書いていますので、そちらも見てください。
https://github.com/shifumin/docker_rails_heroku
必要な環境
- Gitのインストール, GitHubのアカウント, Herokuのアカウント作成辺りは前提として
- Docker
- Heroku CLI
- Ma(ry Homebrewで
brew install heroku
が楽
- Ma(ry Homebrewで
構成
2018年7月7日現在は下記の構成のRailsアプリとなっています。
- Rails 5.2.0 + Ruby 2.5.1
- PostgreSQL 10.4
準備
docker(docker-compose)コマンドの実行はDockerを起動させておく必要があるので起動させてから実行していきます。
まず、必要なDocker imageをpullします。
docker pull ruby:2.5.1 docker pull postgres:10.4
次にリポジトリをcloneします。
git clone git@github.com:shifumin/docker_rails_heroku
cd docker_rails_heroku
rails newしてアプリを作成していきます。
docker-compose run --rm web rails new . --database=postgresql --skip-bundle --skip-test Overwrite /rails_app/README.md? (enter "h" for help) [Ynaqdh] Y Overwrite /rails_app/.gitignore? (enter "h" for help) [Ynaqdh] n Overwrite /rails_app/Gemfile? (enter "h" for help) [Ynaqdh] Y
README.mdは上書きしてもしなくても、.gitignoreは上書きせずにGemfileは上書きします(Y n Y)
database.yml.sampleをコピーしてconfig/database.ymlを置き換えます。
Gemfileにお好みで追加のgemを加えます。
cp -i database.yml.sample config/database.yml overwrite config/database.yml? (y/n [n]) y vim Gemfile
僕は今RailsでLine botを作成しているので下記を追加しました。
# adding group :development, :test do gem 'factory_bot_rails' gem 'rspec-rails' end group :development do gem 'awesome_print' gem 'pry-byebug' gem 'pry-doc' gem 'pry-rails' gem 'pry-stack_explorer' gem 'refe2' gem 'tapp' end
Gemfileにgemを追加したら、bundle installします。
tzinfo-data
はウィンドーズ以外は必要なさそうなので削除しました(下記の2行)
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
参考
余談ですが、僕の場合はbot開発なのでview関係のgem(sass-rails等)は必要ないけど、そのまま残しているのでそれらもきちんと整理する必要がありますね。
ここらでdocker-compose buildします(buildの時に合わせてbundle installもするし、上のbundle installはいらない気がしてきた!)
docker-compose build
一応、RSpecのインストールも済ませておきます(面倒がらずに個人開発でもテストもきちんと書いていくぞというやっていく気持ちの現れ)
また、rails db:createも行います。
docker-compose run --rm web rails g rspec:install docker-compose run --rm web rails db:create
ここまでの前準備でローカル開発環境ではRailsアプリを動かす準備ができたのでdocker-compose upで起動させてブラウザで確認します。
docker-compose up
確認できました。
終わりに
今回はDockerized Railsアプリのテンプレートでローカル開発環境でRailsアプリを起動させるところまで進めました。
次回はCircleCIの設定を進めていきたいと思います(予定)
参考
shifumin/docker_rails_heroku: Template for building Rails application environment with Docker on Heroku.
https://github.com/shifumin/docker_rails_heroku
Docker For Mac | Docker
https://www.docker.com/docker-mac
library/ruby - Docker Hub
https://hub.docker.com/_/ruby/
library/postgres - Docker Hub
https://hub.docker.com/_/postgres/
"The dependency tzinfo-data will be unused" on Ubuntu · Issue #12 · tzinfo/tzinfo-data
https://github.com/tzinfo/tzinfo-data/issues/12