Pups::ExecError: su postgres -c 'psql discourse -c "alter schema public owner to discourse;"' 실행 실패

Iam getting following error when i tried run ./launcher rebuild app

FAILED


Pups::ExecError: su postgres -c ‘psql discourse -c “alter schema public owner to discourse;”’ failed with return #<Process::Status: pid 54 exit 2>

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.

4079c40b96373f2f33049a30414bc383acf909fc3863bdb52a1a678a9f0cc9f7

Originally sent in general
Ratnam_Raju_Varsala

@Canapin 안녕하세요, 도커 앱에 플러그인을 통합하는 방법은 무엇인가요?

Heliosurge
Ratnam_Raju_Varsala

실패(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

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

-bash: /discourse-doctor: No such file or directory

app.yml 파일에 플러그인을 추가한 후 이 오류가 발생하고 있습니다.

Heliosurge

도커 아래에 플러그인을 추가한 app.yml의 해당 섹션을 게시할 수 있나요?

포맷이 매우 정확하게 맞춰져 있는지 확인해야 합니다.

조금 번거롭지만 보통 한 번에 플러그인 2개만 설치하고 재빌드합니다.

어떤 플러그인을 설치하려고 하시나요?

Ratnam_Raju_Varsala

플러그인이 추가되기 전까지는 사이트가 정상적으로 작동했습니다. 이 오류가 발생한 후 사이트가 다운되었습니다.

Heliosurge

채팅 게시물 중 일부를 삭제하십시오. 민감한 정보가 포함되어 있습니다. $home 관련 사항과 플러그인 정보 섹션만 필요합니다.

트레이드 버튼(Trade Buttons) 플러그인이 두 번 추가되어 있습니다. 두 인스턴스 모두를 제거하고 재빌드를 시도한 후 사이트가 복원되는지 확인해 보세요.

채팅이 허용한다면 여기부터 아래 내용만 [code] … [/code]와 같은 태그로 감싸서 붙여넣으시면 됩니다.

Ratnam_Raju_Varsala

아니요, 두 번 추가한 것이 아닙니다.

app.yml 내용 완료 후 여기에 붙여넣은 것입니다.

JammyDodger

이것은 해당 주제(topic)에서 논의하는 것이 더 좋을 것 같습니다. 이 메시지들을那边으로 이동하겠습니다. :+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 -- : /etc/postgresql/13/main/postgresql.conf에서 data_directory = '/var/lib/postgresql/13/main'를 data_directory = '/shared/postgres_data'로 대체
I, [2023-02-11T18:58:30.940639 #1]  INFO -- : /etc/postgresql/13/main/postgresql.conf에서 (?-mix:#?listen_addresses *=.*)를 listen_addresses = '*'로 대체
I, [2023-02-11T18:58:30.941061 #1]  INFO -- : /etc/postgresql/13/main/postgresql.conf에서 (?-mix:#?synchronous_commit *=.*)를 synchronous_commit = $db_synchronous_commit으로 대체
I, [2023-02-11T18:58:30.941491 #1]  INFO -- : /etc/postgresql/13/main/postgresql.conf에서 (?-mix:#?shared_buffers *=.*)를 shared_buffers = $db_shared_buffers으로 대체
I, [2023-02-11T18:58:30.941859 #1]  INFO -- : /etc/postgresql/13/main/postgresql.conf에서 (?-mix:#?work_mem *=.*)를 work_mem = $db_work_mem으로 대체
I, [2023-02-11T18:58:30.942208 #1]  INFO -- : /etc/postgresql/13/main/postgresql.conf에서 (?-mix:#?default_text_search_config *=.*)를 default_text_search_config = '$db_default_text_search_config'로 대체
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 -- : /etc/postgresql/13/main/postgresql.conf에서 (?-mix:#?checkpoint_segments *=.*)를 checkpoint_segments = $db_checkpoint_segments으로 대체
I, [2023-02-11T18:58:30.945805 #1]  INFO -- : /etc/postgresql/13/main/postgresql.conf에서 (?-mix:#?logging_collector *=.*)를 logging_collector = $db_logging_collector으로 대체
I, [2023-02-11T18:58:30.946227 #1]  INFO -- : /etc/postgresql/13/main/postgresql.conf에서 (?-mix:#?log_min_duration_statement *=.*)를 log_min_duration_statement = $db_log_min_duration_statement으로 대체
I, [2023-02-11T18:58:30.946605 #1]  INFO -- : /etc/postgresql/13/main/pg_hba.conf에서 (?-mix:^#local +replication +postgres +peer$)를 local replication postgres  peer로 대체
I, [2023-02-11T18:58:30.946992 #1]  INFO -- : /etc/postgresql/13/main/pg_hba.conf에서 (?-mix:^host.*all.*all.*127.*$)를 host all all 0.0.0.0/0 md5로 대체
I, [2023-02-11T18:58:30.947317 #1]  INFO -- : /etc/postgresql/13/main/pg_hba.conf에서 (?-mix:^host.*all.*all.*::1\/128.*$)를 host all all ::/0 md5로 대체
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 -- : 비동기 프로세스 종료


실패
--------------------
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;\"'"로 실행 실패
bootstrap이 종료 코드 2로 실패
** BOOTSTRAP 실패 ** 위로 스크롤하여 이전 오류 메시지를 확인하십시오. 오류가 하나 이상 있을 수 있습니다.
./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

** BOOTSTRAP 실패 ** 이전의 오류 메시지를 확인하려면 위로 스크롤하십시오. 오류가 하나 이상 있을 수 있습니다.

./discourse-doctor를 사용하면 문제를 진단하는 데 도움이 될 수 있습니다.

4c2225e9c667f9fc2b7b4f9bd26c03f243e877b123be1d41a3c57bf90c049595

절차가 정확히 무엇인지는 확실하지 않지만, 안전 모드에서 사이트를 불러올 수 있을지도 모릅니다.

@JammyDodger 안전 모드 사용 절차를 링크로 공유해 주시겠습니까?

로그 파일을 보셨나요?

보시다시피, "안전 모드"는 자동으로 안전 모드 튜토리얼 링크로 변환됩니다 :slight_smile:

정말 감사합니다. 죄송합니다. canapin님, 이 문제를 일으킬 수 있는 요인이 보이시나요? 추측컨대 app.yml 파일에서 포맷 오류가 원인일 수도 있겠습니다.

안전 모드 주제 발췌.

2023-02-11 19:20:40.842 UTC [42] FATAL: 데이터 디렉터리 "/shared/postgres_data"의 권한이 올바르지 않습니다.
2023-02-11 19:20:40.842 UTC [42] DETAIL: 권한은 u=rwx (0700) 또는 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: 오류: template1 데이터베이스에 연결할 수 없음: 소켓 "/var/run/postgresql/.s.PGSQL.5432"에 대한 서버 연결 실패: 해당 파일 또는 디렉터리가 없습니다
서버가 로컬에서 실행 중이며 해당 소켓에서 연결을 허용하고 있습니까?

위쪽으로 더 스크롤해야 할 수도 있습니다. 안전 모드 절차를 시도해 보셨나요?

솔직히 이 경우에는 효과가 있을지 없을지 확신할 수 없습니다.

사이트가 완전히 다운되어 있습니다. 안전 모드를 추가해도 작동하지 않으며, 사이트는 다운되고 앱도 실행되지 않습니다.

app.yml의 $plugins goes here 섹션을 다시 게시해 주시겠어요?

단, "code"로 시작하여 "/code"로 끝나는 코드 블록 안에 넣어야 합니다. 따옴표는 "["와 "]"로 대체하세요.

app.yml 내용을 여기에 입력하세요
- 마크다운을 트리거하지 않습니다

Dan, 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 파일은 매우 까다로워서… 줄 정렬이 한 줄만 어긋나도 문제가 생길 수 있습니다.

그래서 코드 마크다운 사이에 붙여넣기를 하라고 언급한 것입니다. 그러면 파일의 원본(raw) 버전을 확인할 수 있습니다.

줄 사이에 빈 줄이 하나 있는 것조차도 문제가 될 수 있습니다.