Mailjet이 포함된 DO 드롭렛에서 부트스트래핑 실패

안녕하세요
조금씩 머리가 복잡해지고 있습니다.
표준 설치 지침을 따르고 있고 Mailjet 등을 설정했지만, 부트스트랩이 매번 실패합니다.

아래는 제 설정입니다. 제가 뭘 놓치고 있는지 도무지 모르겠네요.
어떤 아이디어라도 있을까요?

감사합니다

이 설정이 올바른가요?

호스트명      : forum.mydomain.com
이메일         : forumadmin@mydomain.com
SMTP 주소  : in-v3.mailjet.com
SMTP 포트     : 587
SMTP 사용자 이름 : b91xxxxxxd3222d809xxxxxxe3de52d
SMTP 비밀번호 :xxxxxx5b75ecdf24f31c2axxxxxx6903
Let's Encrypt : 비밀번호 (비밀 키)

그리고

실패

--------------------

Pups::ExecError: /bin/bash -c "if [[ ! \"$LETSENCRYPT_ACCOUNT_EMAIL\" =~ ([^@]+)@([^\.]+) ]]; then echo \"LETSENCRYPT_ACCOUNT_EMAIL is not a valid email address\"; exit 1; fi" 실행이 반환 코드 #<Process::Status: pid 5329 exit 1>로 실패했습니다.

실패 위치: /pups/lib/pups/exec_command.rb:112:in `spawn'

exec가 다음 매개변수로 실행되었습니다 {"cmd"=>["if [ -z \"$LETSENCRYPT_ACCOUNT_EMAIL\" ]; then echo \"LETSENCRYPT_ACCOUNT_EMAIL ENV variable is required and has not been set.\"; exit 1; fi", "/bin/bash -c \"if [[ ! \\\"$LETSENCRYPT_ACCOUNT_EMAIL\\\" =~ ([^@]+)@([^\\.]+) ]]; then echo \\\"LETSENCRYPT_ACCOUNT_EMAIL is not a valid email address\\\"; exit 1; fi\""]}

xxxxxxxxxxxxxxxxxxxxxxe6e31b17b7exxxxxxxxxxxxxxxxxx856eb0

** 부트스트랩 실패 ** 위로 스크롤하여 이전 오류 메시지를 확인하십시오. 오류가 여러 개일 수 있습니다.

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

Let’s Encrypt 필드에 입력되는 이메일 주소가 왜 비밀번호나 시크릿 키가 되나요? 이메일 주소가 들어가야 하는 곳입니다.

스크립트에서 LETS ENCRYPT 항목에 아무것도 입력할 수 없습니다.
SMTP 사용자 이름과 비밀번호를 입력하는 순간 바로 진행됩니다.

네, Let’s Encrypt 변수인 것 같습니다. 하지만 위에서 말씀드린 것처럼 설치 스크립트는 이메일 주소를 입력할 기회를 주지 않습니다. SMTP 비밀번호를 입력하는 순간 해당 단계를 건너뛰고 오류가 발생하네요.

여기서 확인하실 수 있습니다…

Discourse용 호스트 이름? [forum.uaptn.com]: 
관리자 계정용 이메일 주소? [forumadmin@uaptn.com]: xxxxxxxxe@protonmail.com
SMTP 서버 주소? [in-v3.mailjet.com]: 
SMTP 포트? [587]: 
SMTP 사용자 이름? [b91xxxxxxxxxxxxxxxxxxde52d]: 
SMTP 비밀번호? [1d2xxxxxxxxxxxxxxxxxxxxxxxxxxxx903]: 
./discourse-setup: line 438: [: too many arguments

도메인 이름 확인 중 . . .
forum.uaptn.com 연결에 성공했습니다.

이 내용이 올바른가요?

호스트 이름      : forum.uaptn.com
이메일         : xxxxxxxxx@protonmail.com
SMTP 주소  : in-v3.mailjet.com
SMTP 포트     : 587
SMTP 사용자 이름 : b91xxxxxxxxxxxxxxxxxxxxxe52d
SMTP 비밀번호 : 1d2cxxxxxxxxxxxxxxxxxxx5086903
Let's Encrypt : PASSWORD (SECRET KEY)

ENTER 키를 눌러 계속하기, 'n'을 눌러 다시 시도, Ctrl+C를 눌러 종료:

비밀번호 대신 여기에 이메일 주소를 입력하세요.

해당 이메일 주소는 Discourse의 SSL 인증서를 발급하기 위해 Let’s Encrypt 계정을 생성하는 데 사용됩니다.

Let’s Encrypt 이메일 주소를 입력할 수 없는 이유가 뭔지 모르겠네요. 혹시 불필요한 엔터 키를 누르고 계신 건가요?

그 말씀이 참 좋은 생각이네요, 한번 시도해 보겠습니다.

그렇지 않아요. 스크립트가 Lets Encrypt 부분을 그냥 지나쳐 버리거든요. 비밀번호를 입력하는 순간 438행에서 [: too many arguments라는 오류가 뜨고 계속 진행됩니다.

비밀번호에 특수 문자가 포함되어 있나요? 123456과 같은 특수 문자가 없는 가짜 비밀번호를 입력해 보시고, Let’s Encrypt 이메일을 요구하는지 확인해 보세요.

아니, 그렇지 않아. Mailjet에서 생성된 비밀번호를 그대로 쓴 건데, 가짜 비밀번호를 입력해 볼게.

안 돼. 시도해 봤는데 같은 에러가 나와.

스크립트가 이미 app.yml에 해당 값이 포함되어 있어 질문하지 않고, 이 문제로 인해 오류가 발생하는 것일 수 있습니다(즉, app.yml 파일에 이미 잘못된 이메일이 적혀 있는 경우).

파일 내 이메일을 수동으로 변경해 보고 작동하는지 확인해 보세요(nano containers/app.yml).

오류가 발생한 줄은 Let’s Encrypt 이메일이 비어 있지 않은지 확인하여 사용자에게 표시하고 변경할지 묻도록 테스트하지만, 조건문에서 변수를 이중 인용부호로 감싸지 않아 app.yml에 있는 값이 확장되면서 Too many arguments 오류가 발생합니다.

discourse 팀이 변수를 이중 인용부호로 감싸도록 하면 이러한 사례를 방지하는 데 도움이 될 것이라고 생각하지만, 어쨌든 이런 경우는 드물 것입니다(아마도 세팅을 처음 실행할 때 값이 잘못 설정된 것이 원인일 것입니다).

그렇게 하면 됩니다 :+1: - app.yml을 수동으로 변경한 후 그 단계를 제공해 주니까요

부트스트랩이 잘 되길 바랍니다

정말 감사합니다