LoginSignup
0
0

More than 5 years have 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でどういった進化を遂げるか期待です!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0