AWS ECS에 Discourse Docker 이미지를 배포하는 것에 대한 명확한 설명

안녕하세요,

ECS(AWS의 컨테이너 서비스)에서 Discourse Docker 이미지를 실행하기 위해 일주일 넘게 시도해 보고 있는데, 조언을 구하고자 여기에 글을 올렸습니다. 스탠드얼론 EC2 서버에서 테스트했을 때는 Discourse가 정상적으로 실행되었습니다. 이를 위해 별도의 PostgreSQL RDS 인스턴스와 Redis 클러스터용 ElastiCache를 생성해 두었습니다.

ECS에 배포하기 위해 생성한 이미지를 ECR 레지스트리에 푸시한 후, 해당 이미지를 가져오는 태스크를 생성했습니다. 예상 결과는 Discourse 컨테이너가 실행되는 것이어야 합니다(스탠드얼론 EC2 서버에서는 정상 작동했으며, 해당 서버에서 실행 중인 컨테이너도 중지해 두었습니다). 그러나 Exit Code 1 오류만 발생하고 있습니다.

또한 ./launcher start app 명령어를 실행했을 때 app.yml에 이미 포함되어 있는 “-e” 옵션이 대량으로 출력되는 것을 확인했습니다. ECS에서 추가로 실행해야 하는 “run” 명령어가 있을까요?

아래 링크를 읽어 보았지만, 단순히 무언가를 놓치고 있는 것 같습니다: Can Discourse ship frequent Docker images that do not need to be bootstrapped?

감사합니다!

먼저: 이것은 지원되지 않는 설치 환경입니다. 표준 Docker 설치를 사용하지 않는 한, 대부분 스스로 해결해야 합니다.

하지만 말씀드리고 싶은 내용은 다음과 같습니다:

해당 ENV 변수를 모두 ECS 컨테이너에 전달해야 합니다. ./launcher start-cmd를 사용하면 해당 정보가 출력되도록 할 수 있습니다. app.yml은 이미지를 빌드하는 데만 사용됩니다. 이러한 변수는 컨테이너에 내장되어 있지 않습니다. 해당 ENV 변수가 컨테이너로 전달되도록 조치를 취하면 원하는 대로 작동할 것이라고 확신합니다.

저는 ECS 설치를 해본 적이 없지만, 곧 해볼 것 같습니다. 해당 방식이 작동하는지 알려주시면 감사하겠습니다.

여기서도 동일한 질문을 하셨습니다: Aws deployed discourse is fetching assets from database url - #18 by trying2survive 그리고 동일한 답변을 받으셨습니다. :wink: