Hay una lista de métodos de instalación aquí: Set up a local Discourse Development Environment?. Tengo un sitio de desarrollo que no usa Docker (usando la guía de Ubuntu). Si es posible para ti, creo que obtendrás los mejores resultados con el enfoque que no usa Docker. Una de las razones por las que lo uso es para no tener que lidiar con problemas de red para las solicitudes de API entre Discourse y otras aplicaciones que estoy desarrollando localmente. También es más rápido que Docker.
Debería serlo. Asegúrate de que la aplicación en la que estás generando la carga útil de SSO no esté convirtiendo el valor booleano true a 1. Ese es un problema común. Para solucionarlo, puedes establecer cualquier valor booleano en la carga útil de SSO a las cadenas \"true\" o \"false\". Discourse los interpretará correctamente. Verifica eso primero para ver si es el problema. Podría ser otra cosa. El código que maneja avatar_force_update es algo complejo, pero legible: discourse/app/models/discourse_connect.rb at 187204705323b650d61ed25862eb1a0c733aa63c · discourse/discourse · GitHub.
Edición: Para el problema de los valores booleanos en la carga útil de SSO, supongo que es más exacto decir que en el proceso de generación de la carga útil de SSO, el entorno convertirá los valores booleanos verdadero/falso a cadenas. Discourse espera que las cadenas sean \"true\" o \"false\", otros entornos de programación pueden manejarlos de manera diferente. Por ejemplo:
PHP:
wp> strval(true)
=> string(1) "1"
en contraposición a Ruby:
irb(main):001> true.to_s
=> "true"
Python (no estoy seguro de cómo Discourse maneja esto):
>>> str(True)
'True'