Coder Social home page Coder Social logo

china_inventory3's Introduction

サービスに関して

  • 名称:プロジェクト名

自分用のメモ。

nginxとpumaの連携をするために
config/puma.rbの末尾に以下を足す必要があった。

bind "unix://#{app_root}/tmp/sockets/puma.sock"

そして、
nginxコンテナとの連携のために
dockerボリュームで

tmp_volumeと、public_volumeというところにrailsのtmpディレクトリを同期。
その影響で、tmp/pids/ とtmp/sockets/ が
環境を変えた時に消えてしまう問題があった。

そしてその2つが消えてしまうと、pumaが動かなくなり、nginxとの同期もうまくいかなくなる。
なので、rails用のentrypoint.shに

mkdir -p tmp/pids
mkdir -p tmp/sockets

を追加した。

これでバインドできることを確認した。

環境構築

docker desktopをインストールしたあと、下記のリポジトリをクローンする。
$ git clone [email protected]:china-inventory3/china-inventory2.git
$ cd china-inventory3

初回時はこれ(imageがなければimageビルドから)コンテナの起動までを行う。
$ docker-compose up

Dockerfileに変更を加えた場合はこれですが、
Gemをインストールする時でも、当チームはビルドする必要はありません。
$ docker-compose build

それぞれのコンテナのターミナルに直接アクセス
コンテナから抜ける時はCommand+P,Q
$ docker-compose exec ●●● ash

サーバーの立ち上げ
$ bundle exec puma -C config/puma.rb
(rails s -b 0.0.0.0で立ち上げると、nginxにbindされない。)

DB関連 コンテナに直接アクセスして以下のコマンドをやればOK(bundle execつけなくてもいい)
$ bundle exec rails db:reset
$ bundle exec rails db:create
$ bundle exec rails db:migrate

作業を終了する時はコンテナを終了させます。
$ docker-compose stop

2回目以降からは以前に作ったコンテナを起動させます。
$ docker-compose start

2回目以降start起動するとデタッチドモードになってログを確認できません。見たいときはこれ。-fを外せばtailしない。
$ docker-compose logs -f

railsコマンドを使用するときはvendor/bundle配下のrailsを使うようにします。
(まずはコンテナにアクセス、そして以下コマンド)
$ bundle exec rails ●●● ~

モデルでのテストコードを作っていく場合は下記のようにして
(まずはコンテナにアクセス、そして以下コマンド)
$ rails g rspec:model model_name

コントローラーでのテストコードを作っていく場合は下記のようにする。コントローラー名にsをつけるのを忘れずに。
(まずはコンテナにアクセス、そして以下コマンド)
$ rails g rspec:controller controllers_name

Dockerの操作マニュアルはこちら

https://qiita.com/okyk/items/a374ddb3f853d1688820

Rspecの操作マニュアルはこちら

一番良かった参考書
https://leanpub.com/everydayrailsrspec-jp/read

models_spec 初めてRSpecでRailsアプリのモデルをテストする
https://qiita.com/y4u0t2a1r0/items/ae4d832fbfb697b4b253

controllers_spec
※今となってはやらなくていいです。

requests_spec リクエストに対するレスポンスが仕様に沿っているか検証します。
※コントローラースペックの代わりに現在はこちらのテストをします。
https://qiita.com/t2kojima/items/ad7a8ade9e7a99fb4384

features_spec、アプリの利用者が使うものと全く同じフォームを使ってテストできます。
https://nyoken.com/rspec-feature-capybara

モデルにあるファイルアップロード機能や、メール送信機能、ジオコーディング(緯度経度)連携のテストの仕方
説明しきれず、、コレを買うといいかも
https://leanpub.com/everydayrailsrspec-jp/read

# Rubocop

コンテナ内でrubocopと入力すれば使えます。


ESLint

https://blog.rista.jp/entry/2017/12/27/135622

デバッグ

pryいれてあります


china_inventory3's People

Contributors

tomohirohagino avatar dependabot[bot] avatar

Stargazers

しめさばさん avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.