Containers/*.yml LC_ALL: en_US.UTF-8

안녕하세요!

Discourse를 재설치하는 과정에서 문제가 발생했습니다.
다음과 같은 오류가 표시됩니다:

 (<unknown>): control characters are not allowed at line 1 column 1 -e LANG=en_US.UTF-8
YAML syntax error. Please check your containers/*.yml config files.

yamllint 도구를 사용하여 설정 파일을 확인했습니다. 결과는 다음과 같습니다.

1행에 무엇이 있나요?

빈 줄이라면, 해당 줄을 삭제하고 다시 시도해 보세요.

아무것도 없었습니다!.. 여기서 '아무것도’란 공백을 말하는 건데요… 이제야 이 내용을 읽게 되었습니다.
YAML 파일은 공백이나 정렬 실수에 대해 매우, 매우 민감합니다!

코딩에서 공백이 문제가 되는 것에 익숙하지 않네요. 정말 감사합니다! 그리고 번거롭게 해서 죄송합니다 :heart:

전혀 방해가 아닙니다.

아, 근데 지금은 그럴 수도 있겠다. 결국 그런 게 아니었으니까.. :sweat_smile:

1행에 공백이 하나 있었거든.. 근데 그걸 지웠어. 저장하고 ./launcher rebuild app을 실행했는데, 그래도 같은 에러가 나와.

비밀번호를 제외한 설정 파일을 개인 메시지로 보내주세요

확인해서 다시 보내드릴게요

방금 DM을 보냈는데, 대화 내역을 어디에서도 찾을 수 없어요. 잘 전달된 걸까요?

제 답변을 확인하셨나요?

네, 했습니다. 실수를 수정했나요?

네, 그렇게 했습니다.

비밀번호를 다시 넣고 앱을 다시 빌드하세요.

좋아요. 새로운 오류가 발생했어요
did not find expected key while parsing a block mapping at line 34 column 3 -e LANG=en_US.UTF-8

가장 쉬운 방법은 아마 app.yml 파일을 삭제한 뒤 discourse-setup을 다시 실행하는 것입니다. 어디에든 불필요한 공백이 하나 추가되었거나 누락되었을 수 있습니다. 또는 일부 공백 대신 탭을 사용했을 수도 있죠. yamlint를 사용하면 문제를 찾을 수 있을지도 모르고, 아니면 복사할 때 항상 뭔가 실수를 할 수도 있습니다.

파일을 망가뜨린 원인이 플러그인을 추가한 것이라면, 다음에 기존 git clone 명령어를 복사/붙여넣기하고 수정해 보세요. 그러면 공백 관련 실수를 하지 않을 수 있습니다.

문제를 찾았습니다

SMTP 비밀번호에는 " 문자가 포함되면 안 됩니다.

비밀번호를 제거하니 빌드가 성공했습니다.

비밀번호를 재설정하고 앱을 다시 빌드하는 것을 권장합니다.

아! 좋은 지적이네요. 네, 백슬래시로 이스케이프 처리할 수 있었을 수도 있지만, 제 해결책은 아무런 도움이 되지 못했을 겁니다.