빌드 실패: MaxMind 지리 위치 데이터베이스를 다운로드할 수 없음

안녕하세요!
2일 전에 이 지침을 사용하여 새로운 DigitalOcean 머신에 Discourse를 설치했고, 모든 것이 정상적으로 작동했습니다.
어제 새로운 DigitalOcean 머신(Ubuntu 18.03, 1GB)에서 한 번 더 애플리케이션을 설치해 보았습니다. VPS 사양은 동일했지만, 이번에는 작동하지 않았습니다.

./discourse-setup를 실행하고 질문에 답한 후 기다렸습니다. 터미널이 #<Thread:0x00005621595f3360@/var/www/discourse/lib/tasks/assets.rake:215 run> terminated with exception (report_on_exception is true): 줄에서 동결되었습니다. 터미널을 해제할 수 있는 유일한 방법은 SSH 연결을 종료하고 다시 연결하는 것이었습니다.

저는 리눅스에 대한 기초적인 지식만 가지고 있습니다.
apt-get으로 시스템을 업데이트했지만, 아무런 차이가 없었습니다.
설치 프로그램이 assets:precompile 작업에서 멈추는 것을 확인했습니다. 예외가 /var/www/discourse/lib/tasks/assets.rake:227:in rescue in block (2 levels) in <top (required)>': undefined local variable or method'name' for main:Object (NameError)에서 발생했습니다.
설치 프로그램이 콘솔에 바이너리 데이터를 쓰기 때문에 동결이 발생하는 것입니다. 더 깊이 파고들어서 보니 403 오류가 발생한다는 것을 깨달았지만, 대상 URL을 찾을 수 없습니다.

어떤 팁을 주실 수 있으신가요?

RAM/CPU 기준으로 어떤 플랜을 사용 중이셨나요?

  • 1GB RAM
  • 1개 공유 vCPU 2.3GHz
  • 25GB ROM SSD

여기에 전체 백트레이스를 올려 주시겠어요? 또한 커스텀 플러그인을 사용하고 계신가요?

screen에서 setup을 실행하고 기록을 남겼습니다. 그런 다음 xdd로 로그를 열었습니다. 바이너리 데이터 2개 부분을 <BINARY_DATA>로 대체했습니다.

#<Thread:0x000055c07c7e8cf8@/var/www/discourse/lib/tasks/assets.rake:215 run> terminated with exception (report_on_exceptionis true):
/var/www/discourse/lib/tasks/assets.rake:227:in `rescue in block (2 levels) in <top (required)>':undefined local variable or method`name' for main:Object (NameError)
from /var/www/discourse/lib/tasks/assets.rake:216:in `block (2 levels) in <top (required)>' /var/www/discourse/lib/file_helper.rb:55:in `block in download':
403 Error:<BINARY_DATA> (OpenURI::HTTPError) <BINARY_DATA>
from /var/www/discourse/lib/final_destination.rb:400:in `block (3 levels) in safe_get'
from /var/www/discourse/lib/final_destination.rb:399:in `catch'
from /var/www/discourse/lib/final_destination.rb:399:in `block (2 levels) in safe_get'
from /usr/local/lib/ruby/2.6.0/net/http.rb:1518:in `block in transport_request'
from /usr/local/lib/ruby/2.6.0/net/http/response.rb:165:in `reading_body'
from /usr/local/lib/ruby/2.6.0/net/http.rb:1517:in `transport_request'
from /usr/local/lib/ruby/2.6.0/net/http.rb:1479:in `request'
from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.0.2/lib/patches/net_patches.rb:9:in `block in request_with_mini_profiler'
from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.0.2/lib/mini_profiler/profiling_methods.rb:39:in `step'
from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.0.2/lib/patches/net_patches.rb:8:in `request_with_mini_profiler'
from /var/www/discourse/lib/final_destination.rb:371:in `block in safe_get'
from /var/www/discourse/lib/final_destination.rb:415:in `block in safe_session'
from /usr/local/lib/ruby/2.6.0/net/http.rb:920:in `start'
from /usr/local/lib/ruby/2.6.0/net/http.rb:605:in `start'
from /var/www/discourse/lib/final_destination.rb:412:in `safe_session'
from /var/www/discourse/lib/final_destination.rb:363:in `safe_get'
from /var/www/discourse/lib/final_destination.rb:129:in `get'
from /var/www/discourse/lib/file_helper.rb:47:in `download'
from /var/www/discourse/lib/discourse_ip_info.rb:30:in `mmdb_download'
from /var/www/discourse/lib/tasks/assets.rake:218:in `block (3 levels) in <top (required)>'
from /var/www/discourse/lib/tasks/assets.rake:217:in `each'
from /var/www/discourse/lib/tasks/assets.rake:217:in `block (2 levels) in <top (required)>'

설치 프로그램은 그 후 일부 작업을 문제없이 수행했습니다. 프로세스의 마지막 부분에는 다음과 같은 내용이 표시됩니다:

FAILED--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake assets:precompile'
failed with return #<Process::Status: pid 384 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'..exec
failed with the params {"cd"=>"$home", "hook"=>"assets_precompile",
"cmd"=>["su discourse -c 'bundle exec rake assets:precompile'"]}
f534324ceedf6b1a8a5cc89f38e1c12c2418fb69c71f93f21c0dd2f5ef51483d
** 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.

명령어 ./discourse-doctor는 도움이 되지 않았습니다. Doctor는 앱이 실행되지 않는 것을 인식하고 재빌드를 시도하지만, 이것도 멈춥니다.
플러그인을 설치하지 않았습니다. 이 컴퓨터에서 이 앱을 한 번도 실행해 본 적이 없기 때문입니다. :frowning:

MaxMind DB 다운로드가 차단된 IP입니다.

app.yml 파일을 편집하고, env 키 아래 DISCOURSE_REFRESH_MAXMIND_DB_DURING_PRECOMPILE_DAYS: 365를 추가한 뒤 다시 빌드를 시도해 보세요.

동작합니다! :boom::fire::tada:
정말 정말 감사합니다! app.yml에 이 줄을 남겨 두어야 하나요, 아니면 첫 번째 호출에 성공한 후 삭제해야 하나요?

제거하면 서버가 더 새로운 DB를 다운로드할 수 없기 때문에 다시 실패하게 됩니다.

이 값을 365로 설정하면, 새로운 베이스 이미지를 출시할 때 업데이트가 이루어지도록 하는 것입니다. 이는 연 2회 진행됩니다.

여기에는 확실히 더 나은 오류 메시지가 필요합니다. 이 오류는 완전히 이해할 수 없어요.