newしたファイルが存在する。Macで作業しているためファイルの所有権は問題ないのでスキップ。newによって)のでbuildする。Gemfileが更新されたらbuildする必要があるようだ。builddatabase.ymlのhostをdocker-compose.ymlで指定しているサービス名に変更する。dbようやくupできる。upportsで設定しているのでhttp://localhost:3000でアクセスできるはず。アクセスするとDBがないと怒られるのでdbを作成する。Rails!に到達できる。Nginx次にpumaのリバースプロキシにNginxを使うための設定を行う。unixソケット通信に変更してNginxと連携できるようにする。s"pやbのオプションがついているとunixソケットを使ってくれないのでこちらも修正。nginx.confも作る。適切なディレクトリ構成とかは一旦置いといてカレントに作成。webunixソケットを利用するのでsockファイルを参照できるようにカレントディレクトリをbind。nginxデフォルトのconfファイルはひとまず必要ないので上書きしてしまう。Rails!に到達できる。upをフォアグラウンドで実行していると見ることのできるログに、各コンテナで起きたログを表示するには標準出力、標準エラー出力に内容を書く必要がある。Nginxはアクセスログをログファイルに書きつつ標準出力に書き出す方法がないので、アクセスログを標準出力にシンボリックリンクすることで実現している。そのため/var/log/nginx/access.logにいくらログを書いてもコンテナ内にログは残らなくなっている。/dev/stderr今回はログファイルに書き込み、Fluentdで扱いたかったのでファイル名を変えてログファイルを残すことにした。elastic-data:DockerHubの公式イメージからコンテナを立ち上げるだけ。データ永続化にはトップレベルにelastic-dataというボリュームを作成して実現。http://localhost:5601/にアクセスするとKibanaにアクセスできる。Fluentdちょっとスマートなやり方ができなかったのでもう少しなんとかしたい課題あり。gemインストールするためだけにDockerfileを書きたくない。今回の要件はただKibanaでみたいだけなので、ログファイルを残す必要が特に無い。そのためアクセスログを直接Fluentdに渡したかった。Dockerには直接関係ないので今回はやらない。QiitaFluentdの公式イメージはDockerHubにあるが、Elasticsearchを使用するためにはgemをインストールする必要があるのでFluentd用にDockerfileを作る。fluent-plugin-elasticsearch設定ファイルも同ディレクトリに作る。http-log:nginxのログをfluentdで扱いたいのでログディレクトリをデータボリュームに。patternを作成する時系列で見たいので@timestampを指定する(?)Discoverに行くとそれっぽいグラフが表示される。http-log:おわりに開発環境でdocker-composeを使った開発はできるようになったんじゃないかという感じだが、まだまだ解決しなければいけない課題はたくさんありそう。RailsアプリーケーションログもKibanaでみたい。適切なディレクトリ構成やどのようにGit管理すべきか。docker-composeを作成者以外に利用して貰う場合にはどうするのがいいかDockerfileでやるかdocker-compose.ymlでやるかなどなど。一定の成果が得られてよかった。FluentdやElasticsearchについてほぼ運用的な知識がないので、環境も作れるようになったことだし色々と調べないとね。(2)はてなブログをはじめよう!arcrightさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。