«前の日記(2017-04-28) 最新 次の日記(2017-06-29)» 編集

会長@腹部日記


2017-05-03 [長年日記]

_ 新しいさくらVPSにおけるtDiaryの構成をメモしておく

要は自分で作成したdocker-composeのREADMEネタとして、忘れる前に・・

  1. 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時の環境変数でサーバの名前を置換する
  2. 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起動コマンドを直接記載
  3. nginxのログのrotate
    • ホスト側にlogrotateを仕込み、docker kill -s HUP nginx_puma して nginxのプロセスにシグナルを送る
  4. 後は、手元からはansibleで操作する
    • ビルド、起動、停止、その他諸々
    • tDiary用data, publicディレクトリをローカル側へ退避、VPSへコピー

TODO

  • コンテナ名にセンスが無いので変えたい
  • tDiaryの設定周りがすっきりしない。無理矢理 entrypoint.shでやっているが、あからさまにpuma用で胸を張って人様に見せられないorz

ansibleとdockerを時間をかけて無理矢理使ったので、すぐ作り直せる

Tags: tDiary Docker

*1 これ正しいの?未だに判らない・・・

*2 この日記でいうところの /d