以前、rails と nginx を unix ドメインソケットで連携させるを書いていました。
Docker 環境でも試します。
参考
作るもの
- Docker で Rails を動作する環境構築
- ローカル –> Docker コンテナ(nginx–[unix ドメインソケット]–>rails) という接続の構成
環境構築
何ということではなく、ただ愚直に nodenv と rbenv そして yarn を動かせるようにセットアップをします。
ベースのイメージが AmazonLinux なのは、「まぁどうせ自分で何か作るなら EC2 でやるだろう」ぐらいの考えです。
Dockerfile
1 | FROM amazonlinux:latest |
Docker-compose.yml
1 | version: "3" |
config/database.yml
1 | default: |
.env
1 | # Node.js Ruby のバージョン指定 |
nginx 設定ファイル復元スクリプト entrypoint.sh
1 |
|
/etc/nginx/conf.d/app.conf
1 | upstream rails_app_unix { |
config/puma.rb
1 | # Puma can serve each request in a thread from an internal thread pool. |
操作
以下の操作を実行し、Docker 内で Rails を起動する。
1 | docker-compose build |
いつもの楽しい Rails の初期画面が表示されます。
production 環境で起動するには以下の追加操作が必要です。
1 | export RAILS_ENV=production |
今回は、Docker 内 nginx の構築。
その nginx を中継して rails につないでみました。
いろいろ Rails×Docker の構成を試しているものの、そろそろずっと使う決定版的なものを用意したいところです。
ではでは。