2017-05-03 [長年日記] この日を編集
_ 新しいさくらVPSにおけるtDiaryの構成をメモしておく
要は自分で作成したdocker-composeのREADMEネタとして、忘れる前に・・
- dockerで以下2つのコンテナを動作
- ruby:2.4.1ベースの tdiary_puma
- tdiary-core, contrib、theme、自前プラグイン群をclone
- contribのjavascriptや、themeをシンボリックリンク越しにtdiary-coreから見えるようにする*1
- bundle installは済ませておいて、pumaを動かす一歩手前にしておく
- publicディレクトリはVOLUMEとして他コンテナから見えるようにしておく
- 起動用のシェルスクリプト(entrypoint.sh)をADDしておく
- nginxベースの nginx_tdiary
- tdiary用confファイルをADD
- build時の環境変数でサーバの名前を置換する
- ruby:2.4.1ベースの tdiary_puma
- docker-compose経由でbuild、実行する
.env
ファイルにサーバ名、コンテナ内部パスのtdiary.conf、tDiaryを公開するURI*2を定義する- nginx_puma
- tdiary_pumaコンテナのVOLUMEを参照、静的ファイルとしてtDiaryのassetsを参照させている
- nginx自体のログはホストのディレクトリをマウントし、そこに出力
- compose用ymlにnginx起動コマンドを直接記載
- tdiary_puma
- data、publicはホストのディレクトリをマウントしている
- マウントした後に entorypoint.shが動くので、そこで起動の度に assets:copy を実行している
- compose用ymlにpuma起動コマンドを直接記載
- nginxのログのrotate
- ホスト側にlogrotateを仕込み、
docker kill -s HUP nginx_puma
して nginxのプロセスにシグナルを送る
- ホスト側にlogrotateを仕込み、
- 後は、手元からはansibleで操作する
- ビルド、起動、停止、その他諸々
- tDiary用data, publicディレクトリをローカル側へ退避、VPSへコピー
TODO
- コンテナ名にセンスが無いので変えたい
- tDiaryの設定周りがすっきりしない。無理矢理 entrypoint.shでやっているが、あからさまにpuma用で胸を張って人様に見せられないorz
ansibleとdockerを時間をかけて無理矢理使ったので、すぐ作り直せる
[ツッコミを入れる]