Finalmente consegui fazer funcionar!
Acho que foi uma mistura entre um git corrompido e o resultado de uma atualização anterior do docker. Resolvi isso podando todos os contêineres e imagens do docker:
cd /opt/discourse
./launcher stop app
docker container prune
docker image prune -a
./launcher rebuild app
Isso resultou/terminou com:
Upgrade Complete
----------------
Optimizer statistics are not transferred by pg_upgrade.
Once you start the new server, consider running:
/usr/lib/postgresql/15/bin/vacuumdb --all --analyze-in-stages
Running this script will delete the old cluster's data files:
./delete_old_cluster.sh
-------------------------------------------------------------------------------------
UPGRADE OF POSTGRES COMPLETE
Old 13 database is stored at /shared/postgres_data_old
To complete the upgrade, rebuild again using:
./launcher rebuild app
-------------------------------------------------------------------------------------
Ao executar a reconstrução novamente, começou a funcionar completamente:
./launcher rebuild app