Логи Rails после внесения изменений:
[DEV]: Изменены файлы, которые не загружаются автоматически. Перезапуск сервера...
- app/controllers/admin/admin_controller.rb
ПЕРЕЗАПУСК UNICORN
I, [2025-09-19T16:35:33.289558 #1735] INFO -- : обработан #<Process::Status: pid 2207 exit 0> worker=0
I, [2025-09-19T16:35:33.289638 #1735] INFO -- : обработан #<Process::Status: pid 2214 exit 0> worker=1
I, [2025-09-19T16:35:33.289701 #1735] INFO -- : обработан #<Process::Status: pid 2226 exit 0> worker=2
I, [2025-09-19T16:35:33.289718 #1735] INFO -- : мастер завершен
TRANSACTION (0.1ms) BEGIN
В другом терминале, если отправить запрос, curl просто зависает:
$ curl 127.0.0.1:3000
# ничего не происходит
В терминале, где я запустил bin/rails s, мне нужно нажать ctrl + c:
Flushed 2 metrics
^CGot INT signal
Shutting down
Terminating quiet threads for default capsule
Scheduler exiting...
Firing quiet event
Firing shutdown event
Pausing to allow jobs to finish...
Bye!
I, [2025-09-19T16:39:36.317846 #4843] INFO -- : Обновление списка Gem
Запуск наблюдателя за изменениями CSS
TranslationOverride Pluck (0.4ms) SELECT "translation_overrides"."translation_key", "translation_overrides"."value" FROM "translation_overrides" WHERE "translation_overrides"."locale" = 'en'
Теперь во втором терминале curl работает как ожидалось:
$ curl 127.0.0.1:3000
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Discourse</title>
<meta name="description" content="">
Что я пробовал
В файле devcontainer.json указано:
"image": "docker.io/discourse/discourse_dev:20250307-0016",
Я изменил локальный файл devcontainer.json на:
"image": "docker.io/discourse/discourse_dev:release",
Но это не решило проблему.
В файле config/environments/development.rb:
config.file_watcher = ActiveSupport::FileUpdateChecker
Это тоже не помогло.
Шаги, которые я использую для запуска сервера Rails:
cd discourse
code . # выбрать "открыть папку в контейнере"
Я не использую задачи vscode, поэтому в другом терминале запускаю:
docker exec -ti -u discourse $ID bash
cd workspace/discourse/
bin/rail s
Также я ожидал, что папка app будет включена в config.autoload_paths, но её там нет:
bin/rails console
Loading development environment (Rails 8.0.2.1)
[1] pry(main)> Rails.application.config.autoload_paths
=> ["/workspace/discourse/lib", "/workspace/discourse/lib/guardian", "/workspace/discourse/lib/i18n", "/workspace/discourse/lib/validators"]