AlmaLinux에 대한 토론

안녕하세요,

지원되는 Discourse 버전에는 특정 설정이 필요하다는 것을 알고 있습니다. 하지만…

지금까지 이 문제에 대해 느끼고 있는 호기심과 투입한 노력 때문에 도움을 요청하게 되었습니다.

AlmaLinux VPS에 docker를 설치하고 Discourse를 설치하여 실행한 후 설정을 마쳤고, 사용자를 초대하는 등 모든 것이 순조롭게 진행되었습니다. 프론트엔드 인터페이스 변경을 제외하고는 플러그인을 추가하거나 주요 변경 사항을 수행하지 않았습니다.

그리고 어제(또는 그 전날) Discourse에 적용된 보안 업데이트를 수행했습니다.
모든 과정이 순조롭게 진행되었습니다.

여기서 초보자의 실수가 발생했습니다(이 분야에서는 확실히 초보입니다). SSH 포트를 변경하기로 결정했지만, 방화벽에서 해당 포트를 열지 않는 것을 잊어버렸습니다. 방화벽 설정을 수정한 후 Discourse를 다시 시작하려고 했더니…

FAIL

일단, 몇 가지 오류 메시지를 공유합니다(희망이 있는지, 아니면 제가 뻔한 것을 놓치고 있는지, 혹은 다른 문제가 있는지 알려주세요. 너그러이 봐주세요 :stuck_out_tongue: :slight_smile:

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && sudo -H -E -u discourse bash -c '
  set -o errexit
  if [ $(git rev-parse --is-shallow-repository) == "true" ]; then
      git remote set-branches --add origin main
      git remote set-branches origin tests-passed
      git fetch --depth 1 origin tests-passed
  else
      git fetch --tags --prune-tags --prune --force origin
  fi
' failed with return #<Process::Status: pid 135 exit 128>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params 
{"cd"=>"$home", "hook"=>"code", "cmd"=>["sudo -H -E -u discourse git reset --hard", 
"sudo -H -E -u discourse git clean -f", "sudo -H -E -u discourse bash -c '\n  
set -o errexit\n  if [ $(git rev-parse --is-shallow-repository) == \"true\" ]; then\n      
git remote set-branches --add origin main\n      
git remote set-branches origin $version\n      
git fetch --depth 1 origin $version\n  else\n      
git fetch --tags --prune-tags --prune --force origin\n  fi\n'", 
"sudo -H -E -u discourse bash -c '\n  set -o errexit\n
  if [[ $(git symbolic-ref --short HEAD) == $version ]] ; then\n      
git pull\n  else\n      
git -c advice.detachedHead=false checkout $version\n  fi\n'", 
"sudo -H -E -u discourse git config user.discourse-version $version", "mkdir -p tmp", 
"chown discourse:www-data tmp", "mkdir -p tmp/pids", "mkdir -p tmp/sockets", 
"touch tmp/.gitkeep", "mkdir -p                    
/shared/log/rails", "bash -c \"touch -a           
/shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log\"", 
"bash -c \"ln    -s           
/shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log $home/log\"", 
"bash -c \"mkdir -p           
/shared/{uploads,backups}\"", 
"bash -c \"ln    -s           
/shared/{uploads,backups} $home/public\"", 
"bash -c \"mkdir -p           
/shared/tmp/{backups,restores}\"", 
"bash -c \"ln    -s           
/shared/tmp/{backups,restores} $home/tmp\"", 
"chown -R discourse:www-data /shared/log/rails /shared/uploads /shared/backups /shared/tmp", 
"[ ! -d public/plugins ] || find public/plugins/ -maxdepth 1 -xtype l -delete"]}
bootstrap failed with exit code 128
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.

기억이 맞다면, 이것은 과거에 메모리가 부족한 상황에서 발생하던 오류였습니다. 이 VM에는 RAM/SWAP가 얼마나 있나요?

free -h의 출력 결과는 무엇인가요?

 total        used        free      shared  buff/cache   available
Mem:          7.5Gi       1.0Gi       4.4Gi       6.0Mi       2.1Gi       6.2Gi
Swap:         614Mi          0B       614Mi

제대로 확인해 보면 확실히 메모리가 부족합니다. 스왑 공간을 더 크게(예: 4GB) 설정해 보고 다시 빌드해 보세요.