shell 在 Docker 图像中与 Amazon ECS 交互,带有 `aws ecs 运行-task`,后跟 `aws ecs execute-command`

Interactive shell in Docker image with Amazon ECS with `aws ecs run-task` followed by `aws ecs execute-command`

我想在我的 AWS ECS/Fargate 集群上将交互式 shell 启动到 public Docker 图像到 运行 network/connectivity从集群内部进行测试。

似乎官方的做法是 aws ecs run-task 后跟 aws ecs execute-command [1][2]

如果可能,我想使用现有的 public Docker 中心图像而不是构建自定义图像。

如果我 运行 在没有命令或默认命令的情况下执行 run-task,任务将退出并且 execute-command 将无法处理已退出的任务。

"Essential container in task exited"

如果我设置 sleep 10000 的 Docker 命令,我得到:

"CannotStartContainerError: ResourceInitializationError: failed to create new container runtime task: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: \"sleep 10000\": executable file not found in $PATH: unknown",

理想情况下,运行-task 和 execute-command 将合并为一个步骤。我不想要无限期地 运行ning 后台任务,我想要一个 shell 到 运行 几个交互命令,当我完成时就被清理掉了。我将如何实现这一目标?

[1] https://aws.amazon.com/blogs/containers/new-using-amazon-ecs-exec-access-your-containers-fargate-ec2/

[2]https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html

我遇到了同样的问题。我终于能够使用任务定义中的以下命令让容器处于“空闲”状态:

"tail", "-F", "/dev/null"

然后我可以通过交互式 execute-command 连接。