Le code Rails ne se recharge pas automatiquement dans les conteneurs de développement

Logs Rails après avoir apporté quelques modifications :

[DEV]: Fichiers modifiés qui ne sont pas automatiquement chargés. Redémarrage du serveur...
       - app/controllers/admin/admin_controller.rb
REDÉMARRAGE DE UNICORN
I, [2025-09-19T16:35:33.289558 #1735]  INFO -- : reaped #<Process::Status: pid 2207 exit 0> worker=0
I, [2025-09-19T16:35:33.289638 #1735]  INFO -- : reaped #<Process::Status: pid 2214 exit 0> worker=1
I, [2025-09-19T16:35:33.289701 #1735]  INFO -- : reaped #<Process::Status: pid 2226 exit 0> worker=2
I, [2025-09-19T16:35:33.289718 #1735]  INFO -- : master complete
  TRANSACTION (0.1ms)  BEGIN

Dans un autre terminal, si j’envoie une requête, curl reste bloqué :

$ curl 127.0.0.1:3000
# rien ne se passe

Dans le terminal où j’ai exécuté bin/rails s, je dois taper 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 -- : Refreshing Gem list
Starting CSS change watcher
  TranslationOverride Pluck (0.4ms)  SELECT "translation_overrides"."translation_key", "translation_overrides"."value" FROM "translation_overrides" WHERE "translation_overrides"."locale" = 'en'

Maintenant, dans le second terminal, curl fonctionne comme prévu :

$ curl 127.0.0.1:3000

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Discourse</title>
    <meta name="description" content="">

Ce que j’ai essayé

Le devcontainer.json contient :

"image": "docker.io/discourse/discourse_dev:20250307-0016",

J’ai modifié mon devcontainer.json localement pour :

"image": "docker.io/discourse/discourse_dev:release",

Cela n’a pas résolu le problème.

Dans config/environments/development.rb

config.file_watcher = ActiveSupport::FileUpdateChecker

Cela n’a pas non plus résolu le problème.

Étapes que j’utilise pour démarrer le serveur Rails :

cd discourse
code . # sélectionner "open folder in container"

Je n’utilise pas les tâches vscode, donc dans un autre terminal j’exécute :

docker exec -ti -u discourse $ID bash
cd workspace/discourse/
bin/rail s

De plus, je m’attendais à ce que le dossier app soit à l’intérieur de config.autoload_paths, mais ce n’est pas le cas :

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"]