任务中的基本容器已退出

Essential container in task exited

我正在尝试使用 aws ecs 配置我的 docker 中心映像。我已经创建了存储库、集群和任务,而 运行 任务出现错误,因为任务中的基本容器已退出1. 在尝试获取准确的错误详细信息时,我发现我的一些变量显示为未配置。

找到附上错误的截图。

cluster details error detail

您应该通过在任务定义中指定日志配置来设置 "Log Configuration"。我会推荐 awslogs 配置类型,因为这样您就可以在控制台中查看容器中的日志。

执行此操作后,您将在任务详细信息屏幕上看到一个名为 "Logs" 的新选项卡,您可以单击该选项卡以查看容器启动时的输出。您可能会看到某种错误或崩溃,因为 "Essential container exited" 错误意味着容器本应保持运行状态 运行,但它只是退出了。

我遇到了类似的问题。您可以设置 cloudwatch 日志,在那里您可以获得完整的错误日志,这将帮助您调试和修复问题。以下是从 aws official documentation.

中截取的部分

使用auto-configuration功能创建日志组

在 Amazon ECS 控制台中注册任务定义时,您可以选择允许 Amazon ECS auto-configure 您的 CloudWatch 日志。此选项使用以 ecs 作为前缀的任务定义系列名称代表您创建一个日志组。

在 Amazon ECS 控制台中使用日志组 auto-configuration 选项

  1. https://console.aws.amazon.com/ecs/ 打开 Amazon ECS 控制台。

  2. 在左侧导航窗格中,选择任务定义,创建新的任务定义,或者,您也可以创建现有任务定义的修订版。

  3. Select 您的兼容性选项并选择下一步。

  4. 选择添加容器。

  5. 在存储和日志记录部分,对于日志配置,选择 Auto-configure CloudWatch Logs。

  6. 输入您的 awslogs 日志驱动程序选项。有关详细信息,请参阅在任务定义中指定日志配置。

完成任务定义向导的其余部分。

我不得不展开停止任务中相应的容器细节并检查“细节”-- > “状态原因”,揭示了以下问题:

OutOfMemoryError: 容器因内存使用而终止 退出代码 137

增加可用容器内存后,它工作正常。