Пересборка уходит в цикл

Здравствуйте, заранее извиняюсь, так как я относительно новичок в Discourse.

Когда я перехожу в директорию /var/discourse/ и запускаю команду ./launcher rebuild app, у меня возникает следующий цикл, показанный ниже.

На данный момент графический интерфейс работает нормально, и я могу выполнять обновления через него.

Я провёл несколько поисков в Google и нашёл эту тему с описанием решения. Мой вопрос: могу ли я также использовать команды git stash и git pull, чтобы решить мою проблему через командную строку?

Проверка актуальности Launcher

Обновление Launcher…

Обновление a1d8d0b..69d7558

ошибка: ваши локальные изменения в следующих файлах будут перезаписаны при слиянии:

templates/web.ssl.template.yml

Пожалуйста, зафиксируйте свои изменения или сохраните их в stash перед слиянием.

Прервано

не удалось обновить

Launcher обновлён, перезапуск…

обнаружена архитектура x86_64.

Проверка актуальности Launcher

Обновление Launcher…

Обновление a1d8d0b..69d7558

ошибка: ваши локальные изменения в следующих файлах будут перезаписаны при слиянии:

templates/web.ssl.template.yml

Пожалуйста, зафиксируйте свои изменения или сохраните их в stash перед слиянием.

Прервано

не удалось обновить

Launcher обновлён, перезапуск…

Переименуйте templates/web.ssl.template.yml в другое имя (например, templates/my-web.ssl.template.yml) и используйте его в секции templates: файла containers/app.yml.

Восстановите его исходное содержимое с помощью:

git restore templates/web.ssl.template.yml

И (вероятно) лучшим долгосрочным решением будет либо внести эти изменения в ваш app.yml, либо разместить ваш шаблон вне дерева /var/discourse

Спасибо, я действительно внес изменения в этот файл, добавив дополнительный клиентский сертификат для усиления шифрования между сервером и Cloudflare.

Если я восстановлю файл template.yml по инструкции, я запущу пересборку, чтобы проверить, решит ли это проблему с циклом. Могу ли я затем снова внести те же изменения без особых проблем? Или это произойдет позже, и мне придется повторить ту же процедуру?

Я сохранил оригинальный шаблон как .bak, так что у меня была возможность посмотреть на изменения.

Ах, спасибо, я думаю, вы уже ответили на мой дополнительный вопрос!

Почти. :slight_smile:

Вот ещё одна подсказка:

Что ж, это не такая хорошая подсказка, как я надеялся. .. Посмотрите на изменения, которые вносятся по ссылке: Setup Multisite Configuration with Let's Encrypt and no Reverse Proxy

В моём текущем состоянии я не думаю, что смогу решить эту задачу самостоятельно. Я следовал инструкциям для стандартной установки DigitalOcean.

Мой первоначальный план состоял в том, чтобы изучить файл app.yml, что в итоге привело меня к файлу web.ssl.template.yml.

Я хотел добавить файл сертификата Cloudflare для повышения безопасности.

Я просмотрел файл 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?

В настоящее время люди редко используют пользовательские сертификаты. Не уверен, что есть веская причина делать то, о чем вы спрашиваете, но вы можете ознакомиться с этим: Allow SSL / HTTPS for your Discourse Docker setup

Похоже, вам просто нужно отключить оранжевое облако, получить сертификат Let’s Encrypt и снова включить оранжевое облако. Также рекомендуется использовать шаблон Cloudflare.

Смотрите: Using Discourse with Cloudflare: Best Practices

Хм. Я не вижу возражений против использования собственных файлов в директории templates, если их имена не совпадают с именами шаблонов, предоставляемых Discourse. Это удобный способ, например, для обмена фрагментами конфигурации между тестовым и производственным серверами.

Спасибо @thoka и @pfaffman за ваше время и ответы.

Я выполнил команду git restore.

Как указал Джей, люди в целом больше не используют пользовательские сертификаты, поэтому, полагаю, на данный момент я тоже не вижу в этом острой необходимости.

Я снова выполнил ./launcher rebuild app, и лаунчер запустился без проблем.

Кстати, я просто добавил шаблон Cloudflare в конец файла app.yml, как указано в инструкции, но лаунчер выдал ошибку синтаксиса. Я удалил его, и всё заработало. У меня никогда не возникало проблем при использовании Cloudflare без шаблона Cloudflare, поэтому я продолжу работать в таком режиме.