こんにちは。Discourse はまだ使い始めたばかりなので、前もって謝っておきます。
/var/discourse/ ディレクトリに移動して ./launcher rebuild app を実行しようとすると、以下のようなループが発生します。
今のところ GUI は問題なく、そちらからアップデートを実行できます。
Google でいくつか検索したところ、このスレッドで解決策が示されているのを見つけました。私の質問は、コマンドラインの問題を解決するために、git stash と git pull コマンドも使用できるかということです。
Launcher のアップデートを確認しています
Launcher をアップデート中…
a1d8d0b..69d7558 をアップデート中
error: マージによって以下のファイルのローカル変更が上書きされます:
templates/web.ssl.template.yml
マージする前に、変更をコミットするか、スタッシュしてください。
中止します
アップデートに失敗しました
Launcher がアップデートされ、再起動しています…
x86_64 アーキテクチャを検出しました。
Launcher のアップデートを確認しています
Launcher をアップデート中…
a1d8d0b..69d7558 をアップデート中
error: マージによって以下のファイルのローカル変更が上書きされます:
templates/web.ssl.template.yml
マージする前に、変更をコミットするか、スタッシュしてください。
中止します
アップデートに失敗しました
Launcher がアップデートされ、再起動しています…
「いいね!」 2
thoka
(Thomas Kalka)
2
template/web.ssl.template.yml を別の名前(例:templates/my-web.ssl.template.yml)に変更し、containers/app.yml の templates: セクションで使用してください。
元の内容は以下で復元できます。
git restore templates/web.ssl.template.yml
「いいね!」 4
pfaffman
(Jay Pfaffman)
3
そして、(おそらく)より長期的な解決策としては、それらの変更を app.yml に追加するか、テンプレートを /var/discourse ツリーの外のどこかに配置することです。
「いいね!」 3
サーバーとCloudflare間の追加の暗号化のために、追加のクライアント証明書を追加するようにこのファイルを変更しました。
template.ymlファイルを復元する手順に従えば、ループの問題が解決するかどうかを確認するために再構築を実行します。その後、同じ変更をもう一度問題なく行うことができますか?それとも、しばらくするとこの問題が発生し、同じ手順を実行する必要があるのでしょうか?
元のテンプレートを.bakとして保存したので、変更を確認する機会がありました。
「いいね!」 1
ありがとうございます。フォローアップの質問にはもうお答えいただけたと思います。
「いいね!」 1
pfaffman
(Jay Pfaffman)
6
ほぼその通りです。 
もう一つヒントを挙げます。
まあ、期待していたほど良いヒントではありませんでした。 . .. Setup Multisite Configuration with Let's Encrypt and no Reverse Proxy で行われた変更を確認してください。
「いいね!」 3
自分でこれを解決できるとは思えません。DigitalOceanの標準インストール手順に従いました。
まず、app.ymlファイルを調べ、web.ssl.template.ymlファイルにたどり着きました。
追加のセキュリティのためにCloudflareのcrtファイルを含めたかったのです。
web.ssl.template.ymlファイルを確認し、このセクションを変更しました。
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
ssl_certificate /shared/ssl/ssl.crt;
ssl_certificate_key /shared/ssl/ssl.key;
ssl_client_certificate /shared/ssl/cloudflare.crt;
ssl_verify_client on;
ssl_session_tickets off;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:1m;
cloudflare.crtファイルを/var/discourse/shared/standalone/sslディレクトリにドロップしたところ、意図したとおりにすべて機能したようです。
app.ymlファイルの変更を同様に行うためのリソースはありますか?
pfaffman
(Jay Pfaffman)
8
最近はカスタム証明書を使用する人はほとんどいません。あなたが求めていることには良い理由があるかどうかはわかりませんが、Allow SSL / HTTPS for your Discourse Docker setup を参照してください。
オレンジ色の雲をオフにし、Let’s Encrypt 証明書を取得して、オレンジ色の雲をオンにするだけでよいと思います。Cloudflare テンプレートも使用したいはずです。
Using Discourse with Cloudflare: Best Practices を参照してください。
「いいね!」 1
thoka
(Thomas Kalka)
9
Hm. templates ディレクトリに独自のファイルを使用することに懸念はありません。それらの名前が Discourse によって提供されるテンプレートと衝突しない限り、たとえばステージングサーバーと本番サーバー間で設定の一部を共有する便利な方法だと思います。
「いいね!」 3
@thoka様、@pfaffman様、お時間とご回答をいただきありがとうございます。
その後、git restoreを実行しました。
Jay氏が指摘したように、現在ではカスタム証明書を使用する人はほとんどいないため、私も現時点ではその必要性を強く感じていません。
再度./launcher rebuild appを実行したところ、ランチャーは問題なく動作しました。
ちなみに、app.ymlの末尾に指示通りCloudflareテンプレートを入力したのですが、ランチャーで構文エラーが発生しました。テンプレートを削除したところ、問題は解決しました。Cloudflareテンプレートを使用しない場合でもCloudflareは問題なく使用できていたので、そのまま使用します。
「いいね!」 1
system
(system)
クローズされました:
11
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.