app.yml에서 smtp 설정을 업데이트해야 하지만, discourse의 버전은 변경하고 싶지 않습니다.
version 태그를 통해 버전을 지정하면 아래 오류와 함께 재구축이 실패합니다. 현재 2.4.0.beta8 버전을 사용하고 있습니다.
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && find /var/www/discourse ! -user discourse -exec chown discourse {} \+ failed with return #<Process::Status: pid 336 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"web", "cmd"=>["gem update bundler", "find $home ! -user discourse -exec chown discourse {} \\+"]}
6269af00c2a4671a6fd2cb13a55bd475743205262bae7f483bf468e4dcacbeed
** 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.
네, 게시글에서 제가 제공한 정보가 충분히 상세하지 않았다는 점 확인했습니다. yml 파일에 version 태그가 없어도 정상적으로 작동하므로 포맷 오류라고 생각하지 않습니다.
추가 테스트를 해본 결과, 제가 겪은 버그는 10번과 11번 버전에서는 발생하지 않지만, 4번부터 9번 버전에서는 발생했습니다.
출력 결과에서 발견할 수 있는 오류는 두 가지뿐이며, 이는 예상된 오류라고 생각합니다:
2020-02-22 10:42:33.410 UTC [62] postgres@postgres ERROR: database "discourse" already exists
2020-02-22 10:42:33.533 UTC [73] postgres@discourse ERROR: role "discourse" already exists
10번 버전의 릴리스 노트를 확인해 보았지만, 이와 관련된 수정 사항에 대한 언급은 찾지 못했습니다.
문제가 수정되었다는 점은 좋은 일입니다. 또한 SMTP 설정에 대한 우회 방법 덕분에(월요일에 테스트할 예정입니다. 주말에는 프로덕션 서버를 건드리고 싶지 않아서요) 제가 급하게 처리할 사항은 없지만, 테스트에서 포착되지 않는 알려지지 않은 오류가 존재하고, 해당 오류가 의도적인 변경이 아닌 우연한 수정으로 해결되었다면 다시 발생할 수 있는지 아는 것이 좋을 것 같습니다. 앞으로 version 기능이 얼마나 안정적으로 유지될 수 있을지 알고 싶습니다.
드디어 무엇이 잘못되었는지 파악했습니다. discourse_docker 저장소와 discourse 저장소가 서로 의존하고 있기 때문에, 특정 버전의 discourse는 discourse_docker 저장소의 특정 버전으로만 설치할 수 있습니다. 불행히도 discourse_docker 저장소에는 태그가 없어서, 특정 버전을 설치하기 위해 어떤 sha를 사용해야 하는지 찾는 것이 쉽지 않습니다. 적어도 결론을 내릴 수 있어서 다행입니다. 앞으로 설치를 할 때 이 내용을 메모해 두겠습니다.