DigitalOcean(DO)에서 표준 방식으로 Discourse를 설치하여 사용하고 있습니다. 처음에는 모든 것이 정상적으로 작동했으나, 아래 링크의 가이드를 따라 플러그인을 하나 추가하기로 결정했습니다.
다음과 같은 라인을 추가했습니다.
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- sudo -E -u discourse git clone https://github.com/discourse/docker_manager.git && sudo -E -u discourse git clone https://github.com/discourse/discourse-templates.git
컨테이너가 재빌드되지 않고 실패하고 있습니다.
--------------------
Pups::ExecError: echo "End of custom commands failed with return #<Process::Status: pid 5121 exit 2>
Location of failure: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params "echo \"End of custom commands"
bootstrap failed with exit code 2
모든 명령어는 root 권한으로 실행되었습니다. 이것이 문제의 원인이라고 생각합니다.
I, [2024-04-18T04:28:49.985355 #1] INFO -- : > cd /var/www/discourse/plugins && sudo -E -u discourse git clone https://github.com/discourse/docker_manager.git && sudo -E -u discourse git clone https://github.com/discourse/discourse-templates.git
Cloning into 'docker_manager'...
warning: unable to access '/root/.config/git/attributes': Permission denied
Cloning into 'discourse-templates'...
warning: unable to access '/root/.config/git/attributes': Permission denied
이 부분에 대해 조언을 부탁드립니다.
이것을 빼고 시도해 보세요.
저는 그냥 - git clone ...만 사용합니다.
… 그리고 몇 년 동안 잘 작동해 왔습니다!
pfaffman
(Jay Pfaffman)
3
접근이 거부되었습니다. 루트 권한으로 실행 중인지 확인해 보셨나요?
저는 공식 Discourse 플러그인 설치 가이드로 여기 게시된 가이드를 따르고 있습니다. 모든 플러그인이 이 가이드로 링크되어 있습니다. 제 경우에는 이 가이드가 설치를 망가뜨렸고, 심지어 초기 yml 설정으로 다시 재구축해도 복구할 수 없습니다.
우리가 루트 권한으로 실행했을 것이라고 거의 확신합니다. 지침을 따랐지만 설치가 중단되었고, 초기 yml 설정에서도 재구성이 불가능합니다.
빌드가 실패해도 아무것도 파괴되지 않으며, 잠시 오프라인 상태가 될 뿐입니다.
데이터베이스는 그대로 유지됩니다.
pfaffman
(Jay Pfaffman)
7
다음 명령으로 포럼이 실행될까요?
./launcher start app
제 추측으로는 탭이나 기타 문자가 삽입되어 yml 파일이 무효화되었을 가능성이 큽니다.
에러는 yml 파일 맨 끝의 "echo"와 관련되어 있으며, 이는 그 앞 어딘가에 포맷 문제가 있음을 시사합니다.
파일을 편집하기 전에 사본을 저장해 두셨나요, 아니면 편집 전 상태로 복원하기 위해 파일을 수정해 보셨나요?
시도해 볼 수 있는 방법은 app.yml의 이름을 변경하고 값(특히 SMTP 관련 설정)을 메모한 후 ./discourse-setup을 다시 실행하는 것입니다. 이렇게 하면 정상적으로 작동하는 app.yml이 생성됩니다.
이 명령은 포럼을 시작합니다.
./discourse-setup을 실행하면 기존 포럼 데이터가 유지되는지, 아니면 먼저 백업하고 복원해야 하는지 궁금합니다. 도움을 주셔서 감사합니다.
pfaffman
(Jay Pfaffman)
9
네. 기존 데이터베이스 등은 그대로 유지됩니다. 이 방법은 단순히 새로운 app.yml 파일을 만드는 것입니다.
친애하는 @pfaffman님과 @merefield님, 도움을 주셔서 감사합니다.
문제가 2가지 있었습니다:
- 심각함 - YML 문법 오류, YML 검증기로 수정
- 덜 심각함 - sudo -E -u discourse를 단순히 git clone(루트 권한으로)으로 대체
이로 인해 플러그인을 재빌드하고 설치할 수 있게 되었습니다.
정말 감사합니다,