Aquí hay más información. En el stderr de gunicorn, veo:
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.7/lib/active_record/connection_adapters/postgresql_adapter.rb:87:in `rescue in new_client': connection to server on socket \"/var/run/postgresql/.s.PGSQL.5432\" failed: No such file or directory (ActiveRecord::ConnectionNotEstablished)
Is the server running locally and accepting connections on that socket?
En el log de PG, veo:
2023-08-21 19:24:00.721 UTC [1681] LOG: listening on Unix socket \"/var/run/postgresql/.s.PGSQL.5432\"
2023-08-21 19:24:00.728 UTC [1681] LOG: could not open configuration file \"/etc/postgresql/13/main/pg_hba.conf\": Permission denied
2023-08-21 19:24:00.728 UTC [1681] FATAL: could not load pg_hba.conf
2023-08-21 19:24:00.741 UTC [1681] LOG: database system is shut down
además:
# ls -l /etc/postgresql/13/main/pg_hba.conf
-rw-r----- 1 root root 4846 Aug 21 19:05 /etc/postgresql/13/main/pg_hba.conf
¿Bajo qué usuario se está ejecutando postgres dentro del contenedor? Con los permisos anteriores, tiene que ser root o alguien del grupo root.
Ok, entonces ejecuté chmod o+r /etc/postgresql/13/main/pg_hba.conf y ahora el contenedor está en funcionamiento de nuevo.
Todo esto es un poco preocupante: ¿por qué el método de instalación recomendado no funciona de inmediato? El estado de mis plugins incluye actualmente los mencionados anteriormente, excepto el explorador de datos, que deshabilité ya que había causado el fallo la última vez.
Enlazando a
que informa síntomas similares.
Actualización: Cambié el comando git en la sección cmd del archivo app.yml para usar sudo como se describe en la publicación enlazada.
Declaro que esta falla es intermitente. En 3 intentos (entre cada uno, borré completamente el directorio shared), tuvo éxito una vez y falló dos veces. Cuando falla, arreglar manualmente los tres permisos en cuestión y luego reiniciar el contenedor resultó en lo que parece ser un sistema funcional. Sería bueno tener un mejor registro y mejores autoevaluaciones para detectar fallos en el arranque del contenedor.