Pups::ExecError: su postgres -c 'psql discourse -c "alter schema public owner to discourse;"' falhou com retorno

Estou recebendo o seguinte erro ao tentar executar ./launcher rebuild app

FAILED

Pups::ExecError: su postgres -c ‘psql discourse -c “alter schema public owner to discourse;”’ falhou com retorno #<Process::Status: pid 54 exit 2>
Localização da falha: /usr/local/lib/ruby/gems/3.1.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn’
exec falhou com os parâmetros “su postgres -c ‘psql $db_name -c \"alter schema public owner to $db_user;\"’”
bootstrap falhou com código de saída 2
** FALHA AO INICIALIZAR ** por favor, role para cima e procure por mensagens de erro anteriores, pode haver mais de uma.
./discourse-doctor pode ajudar a diagnosticar o problema.
4079c40b96373f2f33049a30414bc383bdb52a1a678a9f0cc9f7

Originally sent in general
Ratnam_Raju_Varsala

Olá @Canapin, como posso integrar plugins em um aplicativo Docker?

Heliosurge
Ratnam_Raju_Varsala

FALHA

--------------------

Pups::ExecError: su postgres -c 'psql discourse -c "alter schema public owner to discourse;"' falhou com o retorno #<Process::Status: pid 54 exit 2>

Localização da falha: /usr/local/lib/ruby/gems/3.1.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'

exec falhou com os parâmetros "su postgres -c 'psql $db_name -c \"alter schema public owner to $db_user;\"'"

bootstrap falhou com o código de saída 2

** FALHA AO INICIAR ** por favor, role para cima e procure por mensagens de erro anteriores, pode haver mais de uma.

./discourse-doctor pode ajudar a diagnosticar o problema.

4079c40b96373f2f33049a30414bc383bdb52a1a678a9f0cc9f7

root@community-online:/var/discourse# /discourse-doctor

-bash: /discourse-doctor: Arquivo ou diretório não encontrado

Estou recebendo este erro depois de adicionar um plugin no arquivo app.yml

Heliosurge

Você pode postar essa seção do seu app.yml onde você adicionou o plugin no Docker?

Você tem que garantir que a formatação seja bem precisa.
É um pouco chato, mas geralmente instale e reconstrua apenas 2 plugins por vez.
Qual plugin você está tentando instalar?

Ratnam_Raju_Varsala

O site estava funcionando bem até que o plugin foi adicionado, depois de adicionar este erro, o site está fora do ar

Heliosurge

Exclua parte da sua postagem no chat. Você tem informações confidenciais. Só preciso da seção onde diz $home e informações do plugin.

Você tem seus plugins de botões de troca adicionados duas vezes. Remova ambas as instâncias e tente uma reconstrução e veja se o site é restaurado.

Só preciso daqui para baixo se o chat permitir, envolva-o com algo como ´´ .... ´´

Ratnam_Raju_Varsala

Não, não foi adicionado duas vezes.
Acabei de colar aqui o conteúdo completo do app.yml

JammyDodger

Acho que isso seria melhor discutido no tópico. Vou mover essas mensagens para lá. :+1:

Ratnam_Raju_Varsala

excluído

Heliosurge

legal jam. você pode remover as informações confidenciais dele para que fiquem apenas as informações do plugin?

2 curtidas

I, [2023-02-11T18:58:30.914906 #1]  INFO -- : \u003e [ ! -e /shared/postgres_data ] \u0026\u0026 install -d -m 0755 -o postgres -g postgres /shared/postgres_data \u0026\u0026 sudo -E -u postgres /usr/lib/postgresql/13/bin/initdb -D /shared/postgres_data || exit 0
I, [2023-02-11T18:58:30.917342 #1]  INFO -- : 
I, [2023-02-11T18:58:30.917415 #1]  INFO -- : \u003e chown -R postgres:postgres /shared/postgres_data
I, [2023-02-11T18:58:30.930655 #1]  INFO -- : 
I, [2023-02-11T18:58:30.930872 #1]  INFO -- : \u003e chown -R postgres:postgres /var/run/postgresql
I, [2023-02-11T18:58:30.933165 #1]  INFO -- : 
I, [2023-02-11T18:58:30.933384 #1]  INFO -- : \u003e /root/upgrade_postgres
I, [2023-02-11T18:58:30.937415 #1]  INFO -- : 
I, [2023-02-11T18:58:30.937665 #1]  INFO -- : \u003e rm /root/upgrade_postgres
I, [2023-02-11T18:58:30.939673 #1]  INFO -- : 
I, [2023-02-11T18:58:30.940012 #1]  INFO -- : Replacing data_directory = '/var/lib/postgresql/13/main' with data_directory = '/shared/postgres_data' in /etc/postgresql/13/main/postgresql.conf
I, [2023-02-11T18:58:30.940639 #1]  INFO -- : Replacing (?-mix:#?listen_addresses *=.*) with listen_addresses = '*' in /etc/postgresql/13/main/postgresql.conf
I, [2023-02-11T18:58:30.941061 #1]  INFO -- : Replacing (?-mix:#?synchronous_commit *=.*) with synchronous_commit = $db_synchronous_commit in /etc/postgresql/13/main/postgresql.conf
I, [2023-02-11T18:58:30.941491 #1]  INFO -- : Replacing (?-mix:#?shared_buffers *=.*) with shared_buffers = $db_shared_buffers in /etc/postgresql/13/main/postgresql.conf
I, [2023-02-11T18:58:30.941859 #1]  INFO -- : Replacing (?-mix:#?work_mem *=.*) with work_mem = $db_work_mem in /etc/postgresql/13/main/postgresql.conf
I, [2023-02-11T18:58:30.942208 #1]  INFO -- : Replacing (?-mix:#?default_text_search_config *=.*) with default_text_search_config = '$db_default_text_search_config' in /etc/postgresql/13/main/postgresql.conf
I, [2023-02-11T18:58:30.942546 #1]  INFO -- : \u003e install -d -m 0755 -o postgres -g postgres /shared/postgres_backup
I, [2023-02-11T18:58:30.945002 #1]  INFO -- : 
I, [2023-02-11T18:58:30.945405 #1]  INFO -- : Replacing (?-mix:#?checkpoint_segments *=.*) with checkpoint_segments = $db_checkpoint_segments in /etc/postgresql/13/main/postgresql.conf
I, [2023-02-11T18:58:30.945805 #1]  INFO -- : Replacing (?-mix:#?logging_collector *=.*) with logging_collector = $db_logging_collector in /etc/postgresql/13/main/postgresql.conf
I, [2023-02-11T18:58:30.946227 #1]  INFO -- : Replacing (?-mix:#?log_min_duration_statement *=.*) with log_min_duration_statement = $db_log_min_duration_statement in /etc/postgresql/13/main/postgresql.conf
I, [2023-02-11T18:58:30.946605 #1]  INFO -- : Replacing (?-mix:^#local +replication +postgres +peer$) with local replication postgres  peer in /etc/postgresql/13/main/pg_hba.conf
I, [2023-02-11T18:58:30.946992 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*127.*$) with host all all 0.0.0.0/0 md5 in /etc/postgresql/13/main/pg_hba.conf
I, [2023-02-11T18:58:30.947317 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*::1\\/128.*$) with host all all ::/0 md5 in /etc/postgresql/13/main/pg_hba.conf
I, [2023-02-11T18:58:30.947660 #1]  INFO -- : \u003e HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main
I, [2023-02-11T18:58:30.949060 #1]  INFO -- : \u003e sleep 5
2023-02-11 18:58:30.959 UTC [42] FATAL:  data directory \"/shared/postgres_data\" has invalid permissions
2023-02-11 18:58:30.959 UTC [42] DETAIL:  Permissions should be u=rwx (0700) or u=rwx,g=rx (0750).
I, [2023-02-11T18:58:35.952167 #1]  INFO -- : 
I, [2023-02-11T18:58:35.952437 #1]  INFO -- : \u003e su postgres -c 'createdb discourse' || true
createdb: error: could not connect to database template1: connection to server on socket \"/var/run/postgresql/.s.PGSQL.5432\" failed: No such file or directory
	Is the server running locally and accepting connections on that socket?
I, [2023-02-11T18:58:35.994953 #1]  INFO -- : 
I, [2023-02-11T18:58:35.995243 #1]  INFO -- : \u003e su postgres -c 'psql discourse -c \"create user discourse;\"' || true
psql: error: connection to server on socket \"/var/run/postgresql/.s.PGSQL.5432\" failed: No such file or directory
	Is the server running locally and accepting connections on that socket?
I, [2023-02-11T18:58:36.036721 #1]  INFO -- : 
I, [2023-02-11T18:58:36.037043 #1]  INFO -- : \u003e su postgres -c 'psql discourse -c \"grant all privileges on database discourse to discourse;\"' || true
psql: error: connection to server on socket \"/var/run/postgresql/.s.PGSQL.5432\" failed: No such file or directory
	Is the server running locally and accepting connections on that socket?
I, [2023-02-11T18:58:36.078384 #1]  INFO -- : 
I, [2023-02-11T18:58:36.078703 #1]  INFO -- : \u003e su postgres -c 'psql discourse -c \"alter schema public owner to discourse;\"'
psql: error: connection to server on socket \"/var/run/postgresql/.s.PGSQL.5432\" failed: No such file or directory
	Is the server running locally and accepting connections on that socket?
I, [2023-02-11T18:58:36.120285 #1]  INFO -- : 
I, [2023-02-11T18:58:36.120682 #1]  INFO -- : Terminating async processes

FAILED
--------------------
Pups::ExecError: su postgres -c 'psql discourse -c \"alter schema public owner to discourse;\"' failed with return #\u003cProcess::Status: pid 54 exit 2\u003e
Location of failure: /usr/local/lib/ruby/gems/3.1.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params "su postgres -c 'psql $db_name -c \\\"alter schema public owner to $db_user;\\\"'"
bootstrap failed with exit code 2
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
4c2225e9c667f9fc2b7b4f9bd26c03f243e877b123be1d41a3c57bf90c049595

Ao adicionar um plugin, você vai querer copiar e posicionar o código como o de cima. Acredito que sem espaços entre as linhas.

Verifique também se o plugin que você deseja usar ainda é suportado.

você pode postar o link desse plugin? não estou familiarizado com ele. seria melhor se tivesse um link aqui no discourse também.

discourse git clone GitHub - jannolii/discourse-topic-trade-buttons

Removi o plugin e, após isso, tentei reconstruí-lo, mas após remover o plugin estou recebendo este erro, antes estava funcionando bem.

I, [2023-02-11T18:58:30.949060 #1] INFO – : \u003e sleep 5

2023-02-11 18:58:30.959 UTC [42] FATAL: diretório de dados "/shared/postgres_data" tem permissões inválidas

2023-02-11 18:58:30.959 UTC [42] DETAIL: As permissões devem ser u=rwx (0700) ou u=rwx,g=rx (0750).

I, [2023-02-11T18:58:35.952167 #1] INFO – :

I, [2023-02-11T18:58:35.952437 #1] INFO – : \u003e su postgres -c ‘createdb discourse’ || true

createdb: error: não foi possível conectar ao banco de dados template1: conexão com o servidor no socket "/var/run/postgresql/.s.PGSQL.5432" falhou: Nenhum arquivo ou diretório desse tipo

O servidor está rodando localmente e aceitando conexões nesse socket?

I, [2023-02-11T18:58:35.994953 #1] INFO – :

I, [2023-02-11T18:58:35.995243 #1] INFO – : \u003e su postgres -c ‘psql discourse -c "create user discourse;"’ || true

psql: error: conexão com o servidor no socket "/var/run/postgresql/.s.PGSQL.5432" falhou: Nenhum arquivo ou diretório desse tipo

O servidor está rodando localmente e aceitando conexões nesse socket?

I, [2023-02-11T18:58:36.036721 #1] INFO – :

I, [2023-02-11T18:58:36.037043 #1] INFO – : \u003e su postgres -c ‘psql discourse -c "grant all privileges on database discourse to discourse;"’ || true

psql: error: conexão com o servidor no socket "/var/run/postgresql/.s.PGSQL.5432" falhou: Nenhum arquivo ou diretório desse tipo

O servidor está rodando localmente e aceitando conexões nesse socket?

I, [2023-02-11T18:58:36.078384 #1] INFO – :

I, [2023-02-11T18:58:36.078703 #1] INFO – : \u003e su postgres -c ‘psql discourse -c "alter schema public owner to discourse;"’

psql: error: conexão com o servidor no socket "/var/run/postgresql/.s.PGSQL.5432" falhou: Nenhum arquivo ou diretório desse tipo

O servidor está rodando localmente e aceitando conexões nesse socket?

I, [2023-02-11T18:58:36.120285 #1] INFO – :

I, [2023-02-11T18:58:36.120682 #1] INFO – : Terminando processos assíncronos

FAILED


Pups::ExecError: su postgres -c ‘psql discourse -c "alter schema public owner to discourse;"’ falhou com retorno #\u003cProcess::Status: pid 54 exit 2\u003e

Localização da falha: /usr/local/lib/ruby/gems/3.1.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn’

exec falhou com os parâmetros "su postgres -c ‘psql $db_name -c \"alter schema public owner to $db_user;\"’"

bootstrap falhou com código de saída 2

** FALHA AO INICIAR ** por favor, role para cima e procure por mensagens de erro anteriores, pode haver mais de uma.

./discourse-doctor pode ajudar a diagnosticar o problema.

4c2225e9c667f9fc2b7b4f9bd26c03f243e877b123be1d41a3c57bf90c049595

Não tenho certeza do procedimento, mas talvez você consiga carregar o site em modo de segurança.

@JammyDodger, você pode fornecer o link do procedimento para o modo de segurança?

Você viu meu arquivo de log?

Como você pode ver, “modo de segurança” é automaticamente convertido em um link para o tutorial do modo de segurança :slight_smile:

2 curtidas

Ótimo, obrigado. Peço desculpas. Canapin, você vê algo que possa estar causando esse problema? Adivinhando, talvez um problema de formatação no app.yml?

Trecho do tópico modo de segurança.

2023-02-11 19:20:40.842 UTC [42] FATAL: o diretório de dados "/shared/postgres_data" tem permissões inválidas
2023-02-11 19:20:40.842 UTC [42] DETAIL: As permissões devem ser u=rwx (0700) ou u=rwx,g=rx (0750).
I, [2023-02-11T19:20:45.834611 #1] INFO – :
I, [2023-02-11T19:20:45.834887 #1] INFO – : > su postgres -c ‘createdb discourse’ || true
createdb: error: não foi possível conectar ao banco de dados template1: falha na conexão com o servidor no socket "/var/run/postgresql/.s.PGSQL.5432": Nenhum arquivo ou diretório encontrado
O servidor está em execução localmente e aceitando conexões nesse socket?

talvez você precise rolar para cima. Você tentou o procedimento de modo de segurança?

Não tenho certeza se funcionará neste caso ou não, para ser honesto.

Site completamente fora do ar, mesmo com o modo de segurança ativado não está funcionando, site fora do ar e aplicativo não está rodando

Você pode republicar a seção $plugins goes here do seu app.yml?

apenas certifique-se de colocá-la dentro de “code” terminando com “/code” substitua as aspas por “[” “]”

Seu conteúdo app.yml aqui
- não ativa markdown

Dan, removi o plugin do arquivo app.yml, não há mais plugin, mas vou postar novamente aqui para você

volumes:

  • volume:
    host: /var/discourse/shared/standalone
    guest: /shared
  • volume:
    host: /var/discourse/shared/standalone/log/var-log
    guest: /var/log

Plugins go here

see Install plugins on a self-hosted site for details

hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone GitHub - discourse/docker_manager: Plugin for use with discourse docker image

Entendo, mas você pode ter um erro de formatação. O arquivo app.yml é muito exigente… apenas uma linha fora do alinhamento pode causar problemas.

É por isso que mencionei colar entre o markdown de código para que possamos ver uma versão bruta do seu arquivo.

Até mesmo algo simples como uma linha vazia entre linhas pode causar um problema.