Hi @pfaffman, 원본 게시물에 대한 수정 사항에서 to: 줄에 잘못된 + 기호가 포함되어 있어 정규식(regex)이 깨지는 문제가 있습니다. 이 기호는 제거되어야 합니다.
또한, 다음 단락은 더 이상 의미가 없으므로 수정이 필요합니다:
대체해야 할 두 가지 패턴이 있습니다. 하나는 --keylength로 끝나고, 다른 하나는 --fullchainpath로 끝납니다(실제 파일에서는 각 스위치 앞에 원래 도메인이 위치합니다). (서브)도메인(그리고 -d 로 시작하는 추가 서브도메인)을 입력한 다음, app.yml의 hooks 섹션(파일 끝부분)에 다음 내용을 추가하세요:
다음과 같이 수정하는 것을 제안합니다:
이 게시물에서 domain1과 domain2를 사용하여 필요한 코드를 생성하세요. domain1은 원래 도메인이고, domain2는 추가하려는 도메인입니다. 생성된 after_ssl: 블록을 app.yml의 hooks: 섹션에 추가한 후 launcher rebuild app을 실행하세요.
Errno::ENOENT: No such file or directory @ rb_sysopen - /usr/local/bin/letsencrypt
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups/replace_command.rb:11:in `read’
replace failed with the params {“filename”=>“/usr/local/bin/letsencrypt”, “from”=>“/-d spokes.nz/”, “to”=>“-d spokes.nz -d www.spokes.nz”}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** 이전의 오류 메시지를 찾기 위해 위로 스크롤해 주세요. 오류가 하나 이상 있을 수 있습니다.
추측이긴 하지만, app.yml 파일에서 제안된 스탠자의 각 줄 마지막 슬래시와 마지막 따옴표 앞에 공백이 누락된 것이 오류의 원인일 수 있다고 생각합니다.
오류 메시지로부터 해당 줄들이 (원문 그대로) 다음과 같을 것이라고 추론합니다.
from: /-d spokes.nz/
to: “-d spokes.nz -d www.spokes.nz”
이렇게 말하는 이유는, 제 경우 해당 줄들이 다음과 같기 때문입니다.
from: /-d nzarchitecture.net.nz /
to: "-d nzarchitecture.net.nz -d www.nzarchitecture.net.nz "
위와 같이 각 줄의 끝부분 바로 전에 공백이 있는 경우, 이제 Discourse를 재빌드할 때 해당 오류가 발생하지 않습니다. (이 스레드 시작 부분에 게시된 @pfaffman의 업데이트된 스탠자를 자세히 보시면, 그 추가 공백들이 표시되어 있는 것을 확인하실 수 있습니다.)
또한, 제 경우에도 (오류 메시지에 언급된 대로) usr/local/bin/ 디렉토리에 어떤 파일도 없었습니다. 이로 인해 letsencrypt 파일의 부재가 오류를 유발하는 것이 아니라고 의심하게 되었습니다.
그럼에도 불구하고, 제 경우 Discourse는 nzarchitecture.net.nz URL에서는 정상적으로 작동하지만, 브라우저에 www.nzarchitecture.net.nz를 입력하면 여전히 인증서 오류가 발생합니다. 이것이 해당 파일의 부재 때문인지 저는 알지 못합니다.
Errno::ENOENT: No such file or directory @ rb_sysopen - /usr/local/bin/letsencrypt
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups/replace_command.rb:11:in `read’
replace failed with the params {“filename”=>“/usr/local/bin/letsencrypt”, “from”=>“/-d spokes.nz /”, “to”=>"-d spokes.nz -d www.spokes.nz "}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
여기서 핵심 문제는 아닐 수 있지만, 여기저기 시도해 보던 중 Digital Ocean에서 실행 중인 Docker 버전을 20.0.4(라고 생각됩니다)에서 28.3.3으로 업데이트했습니다 - 적어도 이 오류에는 도움이 되었을 수도 있습니다. 만약 이 오류가 아니더라도, 재빌드 과정 초반에 계속 뜨던 Docker의 ‘비추천(depreciated)’ 경고는 사라졌습니다.
여러분, 후속 안내드립니다. 멀티 도메인 기능이 이제 통합되었습니다. discourse_docker의 최신 버전에서는 SSL 및 Let’s Encrypt 템플릿을 포함하고 DISCOURSE_HOSTNAME_ALIASES: domain.com,other.domain.com 형태의 환경 변수를 설정하여 대체 호스트 이름을 구성할 수 있습니다.