インフラ勉強会wiki更改計画 ver.3.0

登壇者:ば~そんさん

セッションの目的

-docker-compose.yml / docker-compose-overide.yml に分かれて管理されているのをdocker-compose.yml に統合する  インフラ勉強会のWikiで同時編集機能を使う場合(HackMDタブを選択したとき)、警告画面が表示される。 この警告画面が表示されないようにしたい。

具体的なエラー画面

キャプチャ01.PNG

  • リロードボタンを押した場合、同じ警告が表示される。
  • xボタンを押すと、編集可能な画面に遷移する。
  • firefox では、そもそもHackMD機能が動かない(混成コンテンツのブロックが原因?未検証)

開始時の状況

  • 本番と同じ構成の別環境を用意している。
  • 本番と同じ現象を再現させることはできた。

本勉強会のアクション

  • ssh-port forwarding を用いて中のサーバーに直接アクセスする。 切り分けには遠いので、いったんストップ

    • ばーそんさんが事前に検証した環境ではNginxを利用していなかった。
    • Dev環境ではNginxを利用している。
    • これによって、Nginxが原因の一つになっている可能性があるのではないかということで、切り分けのために行う
  • kitkatayama さん 「新しいバージョンが利用できます」、1.20のissue関連っぽい? https://<ドメイン>/config のレスポンスヘッダにcontent-typeが無いので実行不可→バージョン取得不可→バージョンチェック機構からモーダルが発火している?

  • バージョンを上げてみる (1.2.0 -> 1.2.1)  単純には動かない orz

---> Running in 6c3cf0c5d5bf /hackmd/apply-growi-agent.sh: line 3: can't create /hackmd/public/views/codimd/head.ejs: nonexistent directory /hackmd/apply-growi-agent.sh: line 4: can't create /hackmd/public/views/codimd/foot.ejs: nonexistent directory ERROR: Service 'hackmd' failed to build: The command '/bin/sh -c /hackmd/apply-growi-agent.sh' returned a non-zero > code: 1

 起動&警告表示が無くなった! !(^^)!

結論

  • docker-compose.overide.yaml を統合できなかった原因
    • 前やった時に「書き方をミスって」た?
  • 「ページをリロードしてください」ダイアログが出る原因
    • 本家HackMDのissueになるレベルの不具合 
      • リバプロの後ろでHackMdを動かすと、成るらしい
      • 今回のケースでもnginxの裏にHackMDなので該当
    • 原因の切り分けはできた
    • 修正箇所は判明。直し方も分かった。
      • HackMDを13に上げること
      • 本家Growiのマイグレーションプルリクも上がっている
        • ただし「検証要」としてマージされていない

次回のアクション

  • 今回Devでやった修正を、本番git&本番サーバに適用
    • 勉強会でやるとして、開催条件としては「managementチャネルで、やるぞええかと伝えた」のち

技術的な解説

HackMDを起動した際にブラウザが https://hackmd.infra-workshop.tech/config  にアクセスするが、このファイルに対してサーバーがResponce HeaderにContent-Typeを設定していないため、JavaScriptが期待した動作をしない。

これは、リバースプロキシ配下にHackMDが配置されている場合に発生するとしてHackMDのissueに登録されており、インフラ勉強会のWikiも同じ環境のため、発生していると考えられる。

この不具合はHackMD 1.2.1で改善されており、検証環境でこちらのPR を参考に構成を1.3.0に変更すると、事象は改善された。(ただし、HackMDのバージョンアップは、上記のPRの通りWeseek社で検証中。)