Error al cambiar la contraseña del usuario al crear el contenedor de Postgres

Después de que postgres se instala correctamente en el contenedor, el script del lanzador intenta cambiar la contraseña del usuario discourse. Sin embargo, obtengo este error

Pups::ExecError: su - postgres -c 'psql discourse' falló con retorno #<Process::Status: pid 100 exit 141>
Ubicación del fallo: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec falló con los parámetros {"stdin"=>"alter user discourse with password 'redacted';\n", "cmd"=>"su - postgres -c 'psql discourse'", "raise_on_fail"=>true}
bootstrap falló con el código de salida 141
** FALLÓ EL ARRANQUE ** por favor desplácese hacia arriba y busque mensajes de error anteriores, puede haber más de uno.

Parece que postgres no se está ejecutando cuando se alcanza este comando, por lo que falla en una tubería rota. Mi postgres.yml se basa en el archivo de muestra data.yml, así que no estoy seguro de qué estoy haciendo mal. ¿Alguna idea?

¿Podrías por favor

¿Y luego compartirlos aquí?

1 me gusta

Hola, no hay nada destacable en los registros anteriores, pero noté este mensaje en los registros del contenedor

2024-01-26 12:30:54 I, [2024-01-26T17:30:54.465403 #1]  INFO -- : Reading from stdin
2024-01-26 12:30:54 /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/config.rb:22:in `block in initialize': undefined method `has_key?' for nil:NilClass (NoMethodError)
2024-01-26 12:30:54
2024-01-26 12:30:54         @config[key] = {} unless @config.has_key?(key)
2024-01-26 12:30:54                                         ^^^^^^^^^
2024-01-26 12:30:54     from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/config.rb:21:in `each'
2024-01-26 12:30:54     from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/config.rb:21:in `initialize'
2024-01-26 12:30:54     from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/cli.rb:68:in `new'
2024-01-26 12:30:54     from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/cli.rb:68:in `run'
2024-01-26 12:30:54     from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/bin/pups:9:in `<top (required)>'
2024-01-26 12:30:54     from /usr/local/bin/pups:25:in `load'
2024-01-26 12:30:54     from /usr/local/bin/pups:25:in `<main>'

Esto bloquea el contenedor incluso con la alteración de la contraseña after_postgres comentada, que es donde entra la tubería rota.