Help us understand the problem. What is going on with this article?

数年ぶりのRails入門【セットアップ編】

More than 1 year has passed since last update.

バックエンドの開発はいろいろあります。
ただ、個人開発程度なら「rails」でいいんじゃね?的な感じに僕の中でなってきましたので、数年ぶりにRailsに入信したいと思います。
強くてニューゲームで今回はセットアップ!やってきます。

注意事項

この記事書きながらセットアップしています。
なので、ベストプラクティスな方法ではないと思います。
ご容赦ください。

事前準備

dockerでセットアップやってくぜい!なので、dockerとdocker-composeくらいはlocalマシンに導入しといてください。

セットアップ

railsパクってくる

docker hubの公式rails imageがあるのですが、更新が止まってる?っぽいので、今回はこれを使って開発環境を作っていきます。
https://hub.docker.com/r/bitnami/rails

docker-composeの作成

以下のようなdocker-composeを作成し、保存します。

docker-compose.yml
version: "3.2"

services:
    app:
        image: bitnami/rails:5.2.3-0
        volumes:
            - type: bind
              source: ./app
              target: /app
        ports:
            - "3000:3000"
        command: sleep infinity
    db:
        image: postgres:10
        environment:
            - "POSTGRES_USER=postgres"
            - "POSTGRES_PASSWORD=mysecretpassword1234"

作成したら以下コマンドでコンテナを作成し、コンテナ内へ入ります。

コマンド
docker-compose up -d
docker-compose exec app bash

railsアプリの作成

カレントディレクトリは/appになっているので、railsアプリを作成します。(今回はdb=postgresでかつapiモードで作成します。)

コマンド
rails new . --api -d postgresql

そしたらpqのGem周りで怒られるので、エラーがでないように修正します。

コマンド
・エラー文
An error occurred while installing pg (1.1.4), and Bundler cannot continue.
Make sure that `gem install pg -v '1.1.4' --source 'https://rubygems.org/'` succeeds before bundling.
---
・対応
sudo apt-get update
sudo apt-get install libpq-dev
bundle install

bundle installでエラーが出なくなればokです。
最後にdatabaseの接続設定を行っておきましょう。(default部分を以下のように編集します。)

config/database.yml
default: &default
  adapter: postgresql
  encoding: unicode
  host: db # 追記[docker-composeで記述したdbサーバを指定]
  username: postgres # 追記
  password: mysecretpassword1234 #追記
  # For details on connection pooling, see Rails configuration guide
  # http://guides.rubyonrails.org/configuring.html#database-pooling
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>

以下コマンドでdatabaseが作成されることを確認します。

コマンド
rails db:create

railsの起動

すべての準備は整いました。
railsを起動してみます。

コマンド
rails s -b 0.0.0.0

スクリーンショット 2019-04-01 11.15.23.png

おわりに

docker使うとlocalが汚れないし、複数メンバーでの開発の場合、開発環境に差異が生まれにくい、かつ、高速で環境構築できるのでいいですね〜。
ただ、知見ないとハマりやすくはありますが。。。

railsの公式ページを見てるとv6がbetaバージョンで公開されていますね。
v6でどういった進化を遂げるか期待です!

gaku3601
🎉筋肉系エンジニアになりたい系プログラマ٩( 'ω' )و🎉 好きなことで食っていく。(`・ω・´) twitterとかもやってますので、絡んでいただけると嬉しく思います♪
persol-pt
労働人口の減少が見込まれる現代において、 一人ひとりが生み出す付加価値を最大化することが、 日本における重要なテーマです。 わたしたちは、 人・プロセスデザイン・テクノロジーの力で、 お客さまのビジネスプロセスに変革をもたらし、 人と組織の生産性を高めていきます。 さらに、はたらくを楽しむことを大切にし、 「はたらいて、笑おう。」の世界を実現します。
https://www.persol-pt.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away