2018年7月15日日曜日

【Compose and Rails】 新規プロジェクト構築でハマった箇所

  • 公開日:2018年07月15日
  • 最終更新日:2018年07月15日

記事概要

Compose and Railsを使った新規プロジェクトでdocker-composeとrailsを利用したら構築でハマりました。
なので以下にメモ。

環境

  • Engine: 18.03.1-ce
  • Rails5.2
  • ruby2.5.1

公式サイト通りにやったのに、色々と修正が必要になり無駄な時間がかかってしまいました。なので、修正点をまとめておきます。

GemfileとGemfile.lock

公式に通りにやると

terminal

docker-compose run web rails new . --force --database=postgresql

の後に、ローカルに生成されたGemfileとGemfile.lockを、webフォルダの中のGemfileとGemfile.lockと入れ替えることが書いてありません。 コードを読むまで気づきませんでした。なんのためのチュートリアルなのか。

DB作成

公式だとDBの作成が、docker-compose upの起動後になっています。
これだとDBがないので、当たり前ですが、railsが起動しません。

terminal

docker-compose logs

でも理由が出てないので焦りました。ちゃんと書いて欲しいですね。

pidの削除処理

docker-compose startでpumaを起動していると、docker-compose stopを実行しても、PIDファイルが残ってしまうことがあります。

PIDファイルは、長時間動作し続けるプロセス(例えば MySQL デーモンなど)を、自身のPIDをファイルに書いておき、他のプロセスが参照できるようにしているファイルです。

このPIDファイルを削除する処理を記載します。

docker-compose.yml

    command: bash -c 'rm -f tmp/pids/server.pid && bundle exec rails s -p 3001 -b "0.0.0.0"'

上記のようにすることで、docker-compose startのたびにserver.pidが削除されるようになります。

まとめ

公式の通りにやっても、railsの未経験者だと多分すんなりとは立ち上がりません。でも、某キー○の古い情報よりはマシかな。。。という感じです。
結局最後はコードとログを読むしかないという結論でした。AI時代 or 自動化時代はさらに原因究明が大変になるんだろうなあ。あーイヤダイヤダ。
あと、dockerのログは、もう少し詳細にして欲しいですね。

以上です。

PICK UP オススメ書籍

運営サイト


この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加
Related Posts Plugin for WordPress, Blogger...