やったこと |
既存のrailsアプリ開発環境をdockerで一括準備してみた。
個人の開発用の作業録につき、細かなGemfileの中身やバージョンなどは割愛します。 |
Dockerfile |
アプリケーションのルート直下に以下のDockerfileを作成。
|
docker-compose.yml |
|
起動 |
以上の2つのファイルを作成したら、まずはアプリのルート直下で、以下コマンドにてイメージをビルド。
次にコンテナーを起動。-dはバックグラウンド起動のためのオプションだが、何か問題が起こった時はこれを省くとログが見られてハッピーな場合がある。
bashに潜ってコマンドを実行したい場合はdocker psなどでプロセスIDを参照し、
で潜れる。既存のデータベースがあればbundle exec rake db:migrateでマイグレーションを実行する。(開発環境のDBはsqlite) |
その他 |
A server is already running. |
docker processをkillした場合、アプリケーションサーバーが正常にダウンしない場合がある。
|
rails consoleの実行 |
おそらく多くの方は、containerに入ってrails cで立ち上げられるはずだが、自分はこれでハマった。
というエラーが出て、言われた通りbundle installを実行しても何も解決しない。
などとして、gemのインストール先を指定すると思う(自分もそうしたはずだがとっくに忘れていた。)
などといった中身になる。これによってプロジェクトのdefaultのgem管理環境の読込先が指定されるようだ。 |
サーバーログの確認 |
デバッグなどに便利なサーバーログは以下のように確認できる。
を実行。-n 100オプションはログの末尾n行を抽出なので適宜変更。
|