AWS ECSでのDiscourse Dockerイメージ展開に関する注意事項

こんにちは、

Discourse の Docker イメージを AWS の ECS(コンテナサービス)で実行しようとして1週間以上経過しましたので、アドバイスをいただきたくご連絡いたしました。スタンドアロンの 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:

「いいね!」 3