- 公開日: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
公式に通りにやると
docker-compose run web rails new . --force --database=postgresql
の後に、ローカルに生成されたGemfileとGemfile.lockを、webフォルダの中のGemfileとGemfile.lockと入れ替えることが書いてありません。 コードを読むまで気づきませんでした。なんのためのチュートリアルなのか。
DB作成
公式だとDBの作成が、docker-compose upの起動後になっています。
これだとDBがないので、当たり前ですが、railsが起動しません。
docker-compose logs
でも理由が出てないので焦りました。ちゃんと書いて欲しいですね。
pidの削除処理
docker-compose startでpumaを起動していると、docker-compose stopを実行しても、PIDファイルが残ってしまうことがあります。
PIDファイルは、長時間動作し続けるプロセス(例えば MySQL デーモンなど)を、自身のPIDをファイルに書いておき、他のプロセスが参照できるようにしているファイルです。
このPIDファイルを削除する処理を記載します。
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のログは、もう少し詳細にして欲しいですね。
以上です。
0 件のコメント:
コメントを投稿