CannotStartContainerError: ResourceInitializationError: failed to create new container runtime task: failed to create shim: OCI runtime create failed:
CannotStartContainerError: ResourceInitializationError: failed to create new container runtime task: failed to create shim: OCI runtime create failed:
完整的错误信息如下:
CannotStartContainerError: ResourceInitializationError: failed to create new container runtime task: failed to create shim: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "/": permission denied: unknown Entry point
我有一个应用程序,我用它创建了一个 docker 图像,并且它在 lambda 上运行良好。图片在 ECR 上。我删除了我的 lambda 函数,从该映像在 ECS 中创建了一个 docker 容器并使用了 Fargate。
这是我用于创建此任务的 Terraform 上 ECS 模块中的 main.tf 文件。
resource "aws_ecs_cluster" "cluster" {
name = "python-cloud-cluster"
}
resource "aws_ecs_service" "ecs-service" {
name = "python-cloud-project"
cluster = aws_ecs_cluster.cluster.id
task_definition = aws_ecs_task_definition.pcp-ecs-task-definition.arn
launch_type = "FARGATE"
network_configuration {
subnets = var.service_subnets
security_groups = var.pcp_service_sg
assign_public_ip = true
}
desired_count = 1
}
resource "aws_ecs_task_definition" "pcp-ecs-task-definition" {
family = "ecs-task-definition-pcp"
network_mode = "awsvpc"
requires_compatibilities = ["FARGATE"]
memory = "1024"
cpu = "512"
task_role_arn = var.task_role_arn
execution_role_arn = var.task_role_arn
container_definitions = <<EOF
[
{
"name": "pcp-container",
"image": "775362094965.dkr.ecr.us-west-2.amazonaws.com/weather-project:latest",
"memory": 1024,
"cpu": 512,
"essential": true,
"entryPoint": ["/"],
"portMappings": [
{
"containerPort": 80,
"hostPort": 80
}
]
}
]
EOF
}
我在网上找到了一个基本模板并对其进行了修改以满足我的需要。我刚刚意识到任务定义中的入口点设置为 ["/"],这是我使用的模板的默认值。我应该将其设置为什么?或者这个错误是由其他问题引起的?
entryPoint是可选的,不知道是什么的可以不用指定。
您的情况是 /
,这是不正确的。它应该是一些可执行文件(例如 /bin/bash
),这取决于您的容器和容器的作用。但同样,它是可选的。
您必须检查 weather-project
容器的文档,看看它到底做了什么以及如何使用它。
完整的错误信息如下:
CannotStartContainerError: ResourceInitializationError: failed to create new container runtime task: failed to create shim: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "/": permission denied: unknown Entry point
我有一个应用程序,我用它创建了一个 docker 图像,并且它在 lambda 上运行良好。图片在 ECR 上。我删除了我的 lambda 函数,从该映像在 ECS 中创建了一个 docker 容器并使用了 Fargate。
这是我用于创建此任务的 Terraform 上 ECS 模块中的 main.tf 文件。
resource "aws_ecs_cluster" "cluster" {
name = "python-cloud-cluster"
}
resource "aws_ecs_service" "ecs-service" {
name = "python-cloud-project"
cluster = aws_ecs_cluster.cluster.id
task_definition = aws_ecs_task_definition.pcp-ecs-task-definition.arn
launch_type = "FARGATE"
network_configuration {
subnets = var.service_subnets
security_groups = var.pcp_service_sg
assign_public_ip = true
}
desired_count = 1
}
resource "aws_ecs_task_definition" "pcp-ecs-task-definition" {
family = "ecs-task-definition-pcp"
network_mode = "awsvpc"
requires_compatibilities = ["FARGATE"]
memory = "1024"
cpu = "512"
task_role_arn = var.task_role_arn
execution_role_arn = var.task_role_arn
container_definitions = <<EOF
[
{
"name": "pcp-container",
"image": "775362094965.dkr.ecr.us-west-2.amazonaws.com/weather-project:latest",
"memory": 1024,
"cpu": 512,
"essential": true,
"entryPoint": ["/"],
"portMappings": [
{
"containerPort": 80,
"hostPort": 80
}
]
}
]
EOF
}
我在网上找到了一个基本模板并对其进行了修改以满足我的需要。我刚刚意识到任务定义中的入口点设置为 ["/"],这是我使用的模板的默认值。我应该将其设置为什么?或者这个错误是由其他问题引起的?
entryPoint是可选的,不知道是什么的可以不用指定。
您的情况是 /
,这是不正确的。它应该是一些可执行文件(例如 /bin/bash
),这取决于您的容器和容器的作用。但同样,它是可选的。
您必须检查 weather-project
容器的文档,看看它到底做了什么以及如何使用它。