Pups::ExecError: su postgres -c 'psql discourse -c "alter schema public owner to discourse;"' завершился с ошибкой возврата

При попытке выполнить команду ./launcher rebuild app возникает следующая ошибка:

FAILED


Pups::ExecError: su postgres -c ‘psql discourse -c “alter schema public owner to discourse;”’ завершилась с ошибкой, код возврата #<Process::Status: pid 54 exit 2>

Место возникновения ошибки: /usr/local/lib/ruby/gems/3.1.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn’

Выполнение команды не удалось с параметрами “su postgres -c ‘psql $db_name -c "alter schema public owner to $db_user;"’”

Процесс загрузки завершился с кодом выхода 2

** ОШИБКА ЗАГРУЗКИ ** Пожалуйста, прокрутите вверх и найдите предыдущие сообщения об ошибках; их может быть несколько.

Команда ./discourse-doctor может помочь в диагностике проблемы.

4079c40b96373f2f33049a30414bc383acf909fc3863bdb52a1a678a9f0cc9f7

Originally sent in general
Ratnam_Raju_Varsala

Привет @Canapin, как мне интегрировать плагины в приложение Docker?

Heliosurge
Ratnam_Raju_Varsala

ОШИБКА

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

Pups::ExecError: su postgres -c 'psql discourse -c "alter schema public owner to discourse;"' завершился с ошибкой #<Process::Status: pid 54 exit 2>

Место возникновения ошибки: /usr/local/lib/ruby/gems/3.1.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'

выполнение команды не удалось с параметрами "su postgres -c 'psql $db_name -c "alter schema public owner to $db_user;"'"

загрузка не удалась с кодом выхода 2

** ЗАГРУЗКА НЕ УДАЛАСЬ ** пожалуйста, прокрутите вверх и поищите более ранние сообщения об ошибках, их может быть несколько.
./discourse-doctor может помочь диагностировать проблему.

4079c40b96373f2f33049a30414bc383acf909fc3863bdb52a1a678a9f0cc9f7

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

-bash: /discourse-doctor: файл или каталог не найден

я получаю эту ошибку после добавления плагина в файл app.yml

Heliosurge

можешь ли ты опубликовать ту часть своего app.yml, где ты добавил плагин под docker?

Ты должен убедиться, что форматирование очень точное.

это немного больно, но обычно устанавливай и пересобирай только 2 плагина за раз

Какой плагин ты пытаешься установить?

Ratnam_Raju_Varsala

Сайт работал нормально, пока не был добавлен плагин. После добавления плагина возникла эта ошибка, и сайт упал

Heliosurge

Удали часть своего сообщения в чате. У тебя есть конфиденциальная информация. Нужна только та часть, где говорится о $home и информации о плагине.

У тебя плагин trade buttons добавлен дважды. Удали оба экземпляра и попробуй пересобрать, чтобы увидеть, восстановится ли сайт

Нужно только отсюда и ниже. Если чат позволяет, оберни это чем-то вроде [code][/code]

Ratnam_Raju_Varsala

нет, не добавлен дважды

я просто вставил сюда содержимое app.yml после завершения

JammyDodger

Думаю, это лучше обсудить в теме. Я перемещу эти сообщения туда. :+1:

Ratnam_Raju_Varsala

удалил

Heliosurge

круто, Jam. Можешь ли ты удалить его конфиденциальную информацию, оставив только информацию о плагине?


I, [2023-02-11T18:58:30.914906 #1]  INFO -- : > [ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && 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 -- : > 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 -- : > 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 -- : > /root/upgrade_postgres
I, [2023-02-11T18:58:30.937415 #1]  INFO -- : 
I, [2023-02-11T18:58:30.937665 #1]  INFO -- : > rm /root/upgrade_postgres
I, [2023-02-11T18:58:30.939673 #1]  INFO -- : 
I, [2023-02-11T18:58:30.940012 #1]  INFO -- : Замена data_directory = '/var/lib/postgresql/13/main' на data_directory = '/shared/postgres_data' в файле /etc/postgresql/13/main/postgresql.conf
I, [2023-02-11T18:58:30.940639 #1]  INFO -- : Замена (?-mix:#?listen_addresses *=.*) на listen_addresses = '*' в файле /etc/postgresql/13/main/postgresql.conf
I, [2023-02-11T18:58:30.941061 #1]  INFO -- : Замена (?-mix:#?synchronous_commit *=.*) на synchronous_commit = $db_synchronous_commit в файле /etc/postgresql/13/main/postgresql.conf
I, [2023-02-11T18:58:30.941491 #1]  INFO -- : Замена (?-mix:#?shared_buffers *=.*) на shared_buffers = $db_shared_buffers в файле /etc/postgresql/13/main/postgresql.conf
I, [2023-02-11T18:58:30.941859 #1]  INFO -- : Замена (?-mix:#?work_mem *=.*) на work_mem = $db_work_mem в файле /etc/postgresql/13/main/postgresql.conf
I, [2023-02-11T18:58:30.942208 #1]  INFO -- : Замена (?-mix:#?default_text_search_config *=.*) на default_text_search_config = '$db_default_text_search_config' в файле /etc/postgresql/13/main/postgresql.conf
I, [2023-02-11T18:58:30.942546 #1]  INFO -- : > 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 -- : Замена (?-mix:#?checkpoint_segments *=.*) на checkpoint_segments = $db_checkpoint_segments в файле /etc/postgresql/13/main/postgresql.conf
I, [2023-02-11T18:58:30.945805 #1]  INFO -- : Замена (?-mix:#?logging_collector *=.*) на logging_collector = $db_logging_collector в файле /etc/postgresql/13/main/postgresql.conf
I, [2023-02-11T18:58:30.946227 #1]  INFO -- : Замена (?-mix:#?log_min_duration_statement *=.*) на log_min_duration_statement = $db_log_min_duration_statement в файле /etc/postgresql/13/main/postgresql.conf
I, [2023-02-11T18:58:30.946605 #1]  INFO -- : Замена (?-mix:^#local +replication +postgres +peer$) на local replication postgres peer в файле /etc/postgresql/13/main/pg_hba.conf
I, [2023-02-11T18:58:30.946992 #1]  INFO -- : Замена (?-mix:^host.*all.*all.*127.*$) на host all all 0.0.0.0/0 md5 в файле /etc/postgresql/13/main/pg_hba.conf
I, [2023-02-11T18:58:30.947317 #1]  INFO -- : Замена (?-mix:^host.*all.*all.*::1\/128.*$) на host all all ::/0 md5 в файле /etc/postgresql/13/main/pg_hba.conf
I, [2023-02-11T18:58:30.947660 #1]  INFO -- : > 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 -- : > sleep 5
2023-02-11 18:58:30.959 UTC [42] FATAL:  каталог данных "/shared/postgres_data" имеет недопустимые права доступа
2023-02-11 18:58:30.959 UTC [42] DETAIL:  Права доступа должны быть u=rwx (0700) или u=rwx,g=rx (0750).
I, [2023-02-11T18:58:35.952167 #1]  INFO -- : 
I, [2023-02-11T18:58:35.952437 #1]  INFO -- : > su postgres -c 'createdb discourse' || true
createdb: ошибка: не удалось подключиться к базе данных template1: подключение к серверу через сокет "/var/run/postgresql/.s.PGSQL.5432" не удалось: файл или каталог не найден
	Запущен ли сервер локально и принимает ли он подключения через этот сокет?
I, [2023-02-11T18:58:35.994953 #1]  INFO -- : 
I, [2023-02-11T18:58:35.995243 #1]  INFO -- : > su postgres -c 'psql discourse -c "create user discourse;"' || true
psql: ошибка: подключение к серверу через сокет "/var/run/postgresql/.s.PGSQL.5432" не удалось: файл или каталог не найден
	Запущен ли сервер локально и принимает ли он подключения через этот сокет?
I, [2023-02-11T18:58:36.036721 #1]  INFO -- : 
I, [2023-02-11T18:58:36.037043 #1]  INFO -- : > su postgres -c 'psql discourse -c "grant all privileges on database discourse to discourse;"' || true
psql: ошибка: подключение к серверу через сокет "/var/run/postgresql/.s.PGSQL.5432" не удалось: файл или каталог не найден
	Запущен ли сервер локально и принимает ли он подключения через этот сокет?
I, [2023-02-11T18:58:36.078384 #1]  INFO -- : 
I, [2023-02-11T18:58:36.078703 #1]  INFO -- : > su postgres -c 'psql discourse -c "alter schema public owner to discourse;"'
psql: ошибка: подключение к серверу через сокет "/var/run/postgresql/.s.PGSQL.5432" не удалось: файл или каталог не найден
	Запущен ли сервер локально и принимает ли он подключения через этот сокет?
I, [2023-02-11T18:58:36.120285 #1]  INFO -- : 
I, [2023-02-11T18:58:36.120682 #1]  INFO -- : Завершение асинхронных процессов


FAILED
--------------------
Pups::ExecError: su postgres -c 'psql discourse -c "alter schema public owner to discourse;"' завершился с ошибкой с кодом возврата #<Process::Status: pid 54 exit 2>
Место возникновения ошибки: /usr/local/lib/ruby/gems/3.1.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
Выполнение команды не удалось с параметрами "su postgres -c 'psql $db_name -c \"alter schema public owner to $db_user;\"'"
Инициализация не удалась с кодом выхода 2
** ИНИЦИАЛИЗАЦИЯ НЕ УДАЛАСЬ ** пожалуйста, прокрутите вверх и найдите более ранние сообщения об ошибках, их может быть несколько.
./discourse-doctor может помочь в диагностике проблемы.
4c2225e9c667f9fc2b7b4f9bd26c03f243e877b123be1d41a3c57bf90c049595

При добавлении плагина вам нужно скопировать и разместить код, как в примере выше. Я считаю, что между строками не должно быть пробелов.

Также убедитесь, что плагин, который вы хотите использовать, всё ещё поддерживается.

Можешь скинуть ссылку на этот плагин? Я не знаком с ним. Было бы лучше, если бы ссылка была здесь, в Discourse.

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

Я удалил плагин, а затем попытался пересобрать его, но после удаления плагина я получаю эту ошибку. Ранее всё работало нормально.

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

2023-02-11 18:58:30.959 UTC [42] FATAL: каталог данных “/shared/postgres_data” имеет недопустимые права доступа

2023-02-11 18:58:30.959 UTC [42] DETAIL: Права доступа должны быть u=rwx (0700) или u=rwx,g=rx (0750).

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

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

createdb: ошибка: не удалось подключиться к базе данных template1: подключение к серверу через сокет “/var/run/postgresql/.s.PGSQL.5432” не удалось: файл или каталог не найден

Запущен ли сервер локально и принимает ли он подключения через этот сокет?

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

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

psql: ошибка: подключение к серверу через сокет “/var/run/postgresql/.s.PGSQL.5432” не удалось: файл или каталог не найден

Запущен ли сервер локально и принимает ли он подключения через этот сокет?

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

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

psql: ошибка: подключение к серверу через сокет “/var/run/postgresql/.s.PGSQL.5432” не удалось: файл или каталог не найден

Запущен ли сервер локально и принимает ли он подключения через этот сокет?

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

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

psql: ошибка: подключение к серверу через сокет “/var/run/postgresql/.s.PGSQL.5432” не удалось: файл или каталог не найден

Запущен ли сервер локально и принимает ли он подключения через этот сокет?

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

I, [2023-02-11T18:58:36.120682 #1] INFO – : Завершение асинхронных процессов

FAILED


Pups::ExecError: su postgres -c ‘psql discourse -c “alter schema public owner to discourse;”’ завершился с ошибкой, код возврата #<Process::Status: pid 54 exit 2>

Место ошибки: /usr/local/lib/ruby/gems/3.1.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn’

Выполнение не удалось с параметрами “su postgres -c ‘psql $db_name -c "alter schema public owner to $db_user;"’”

Инициализация завершилась с кодом выхода 2

** ИНИЦИАЛИЗАЦИЯ НЕ УДАЛАСЬ ** прокрутите вверх и найдите более ранние сообщения об ошибках, их может быть несколько.

./discourse-doctor может помочь в диагностике проблемы.

4c2225e9c667f9fc2b7b4f9bd26c03f243e877b123be1d41a3c57bf90c049595

Я не совсем уверен в процедуре, но, возможно, вы сможете загрузить сайт в безопасном режиме.

@JammyDodger, не могли бы вы дать ссылку на инструкцию по безопасному режиму?

Вы видели мой файл журнала?

Как видите, «безопасный режим» автоматически превращается в ссылку на руководство по безопасному режиму :slight_smile:

Отлично, спасибо. Мои извинения. Canapin, вы видите что-то, что может вызывать эту проблему? На всякий случай, возможно, это ошибка форматирования в app.yml?

отрывок из темы о безопасном режиме.

2023-02-11 19:20:40.842 UTC [42] ФАТАЛЬНАЯ ОШИБКА: у каталога данных «/shared/postgres_data» недопустимые права доступа
2023-02-11 19:20:40.842 UTC [42] ДЕТАЛИ: Права доступа должны быть u=rwx (0700) или u=rwx,g=rx (0750).
I, [2023-02-11T19:20:45.834611 #1] ИНФО – :
I, [2023-02-11T19:20:45.834887 #1] ИНФО – : > su postgres -c ‘createdb discourse’ || true
createdb: ошибка: не удалось подключиться к базе данных template1: подключение к серверу через сокет «/var/run/postgresql/.s.PGSQL.5432» не удалось: файл или каталог не найден
Запущен ли сервер локально и принимает ли он подключения через этот сокет?

Возможно, вам придётся прокрутить страницу выше. Вы пробовали процедуру в безопасном режиме?

Честно говоря, не уверен, сработает ли это в данном случае.

Сайт полностью недоступен, даже после включения безопасного режима это не помогло, сайт не работает, приложение не запущено.

Можешь повторно опубликовать секцию $plugins в твоем app.yml?

Только убедись, что вставил её внутрь “code”, заканчивая на “/code”, заменив кавычки на “[” “]”

Содержимое твоего app.yml здесь
- не вызывает markdown

Дэн, я удалил плагин из файла app.yml, теперь плагина нет, но я снова опубликую его здесь.

volumes:

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

Плагины размещаются здесь

подробности см. на Install plugins on a self-hosted site

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

Я понимаю, но у вас может быть ошибка форматирования. Файл app.yml очень требователен: даже одна строка с неверным выравниванием может вызвать проблемы.

Вот почему я предлагал вставлять содержимое между маркдауном для кода, чтобы мы могли увидеть «сырую» версию вашего файла.

Даже такая простая вещь, как пустая строка между строками, может вызвать проблему.