2
respostas

[Bug] Falha ao executar o serviço no Cluster

Não estou conseguindo criar o Cluster da forma devida. Crio a tarefa, executo o serviço e o container dá erro, dizendo "Exit 0"

Tentei subir um outro site, só com HTML e um Dockerfile usando NGinx e mesmo assim ele não inicia quando peço para executar o serviço. Há alguma permissão que eu precise me atentar?

2 respostas

Oi, Yago!

Quando o container retorna um erro "Exit 0", isso pode indicar que o container está parando imediatamente após iniciar, o que pode acontecer por algumas razões. Vamos tentar algumas abordagens para diagnosticar e resolver o problema:

  1. Verifique o Dockerfile: Certifique-se de que o Dockerfile está corretamente configurado. Um exemplo básico para um site estático usando NGinx seria algo assim:

    FROM nginx:alpine
    COPY . /usr/share/nginx/html
    

    Este Dockerfile copia o conteúdo do diretório atual para o diretório padrão do NGinx.

  2. Comandos de Inicialização: Verifique se há algum comando de inicialização no seu Dockerfile ou nas definições de tarefa que pode estar causando o encerramento do container. O NGinx, por exemplo, deve ser iniciado automaticamente, então não deveria haver necessidade de comandos adicionais.

  3. Logs do Container: Confira os logs do container para obter mais detalhes sobre o que pode estar causando o encerramento. Você pode acessar os logs pela AWS Management Console ou usando a AWS CLI.

  4. Permissões e Segurança: Verifique se as permissões de segurança estão configuradas corretamente. Isso inclui grupos de segurança do EC2, políticas do IAM e qualquer configuração de rede que possa estar bloqueando o tráfego.

  5. Configuração do Cluster: Certifique-se de que o Cluster e as definições de tarefa estão configurados corretamente. Verifique se os recursos alocados (CPU, memória) são suficientes para o container.

  6. Testar Localmente: Tente executar o container localmente para verificar se ele inicia sem problemas. Isso pode ajudar a isolar se o problema está no ambiente da AWS ou na configuração do container em si.

Bons estudos!

Opa Lucas! Obrigado pela resposta.

Tentei verificar tudo o que você encontrou e não achei nada. Para tentar entender, criei um projeto com HTML básico e criei o dockerfile conforme instruído. Fiz a imagem e ela funciona em um container aqui na minha máquina.

Subi para o ECR sem problemas e criei uma t2.medium igual ao curso e, mais uma vez, sem sucesso. Não sei oq pode ser, mas já tô achando que a AWS não vai com minha cara haha

Segue print dos erros que deu. Não é falta de recurso, eu usei exatamente as configurações do curso numa aplicação bem mais leve

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Também vou deixar aqui abaixo o JSON da tarefa, vai que tem algo que não consegui achar:

{
    "taskDefinitionArn": "arn:aws:ecs:us-east-2:982534392197:task-definition/site-forge-tafera:1",
    "containerDefinitions": [
        {
            "name": "site-forge",
            "image": "982534392197.dkr.ecr.us-east-2.amazonaws.com/site-forge:latest",
            "cpu": 512,
            "memoryReservation": 2048,
            "portMappings": [
                {
                    "name": "site-forge-80-tcp",
                    "containerPort": 80,
                    "protocol": "tcp",
                    "appProtocol": "http"
                }
            ],
            "essential": true,
            "environment": [],
            "environmentFiles": [],
            "mountPoints": [],
            "volumesFrom": [],
            "ulimits": [],
            "systemControls": []
        }
    ],
    "family": "site-forge-tafera",
    "executionRoleArn": "arn:aws:iam::982534392197:role/ecsTaskExecutionRole",
    "networkMode": "bridge",
    "revision": 1,
    "volumes": [],
    "status": "ACTIVE",
    "requiresAttributes": [
        {
            "name": "com.amazonaws.ecs.capability.ecr-auth"
        },
        {
            "name": "com.amazonaws.ecs.capability.docker-remote-api.1.21"
        },
        {
            "name": "ecs.capability.execution-role-ecr-pull"
        },
        {
            "name": "com.amazonaws.ecs.capability.docker-remote-api.1.18"
        }
    ],
    "placementConstraints": [],
    "compatibilities": [
        "EC2"
    ],
    "requiresCompatibilities": [
        "EC2"
    ],
    "cpu": "1024",
    "memory": "2048",
    "runtimePlatform": {
        "cpuArchitecture": "X86_64",
        "operatingSystemFamily": "LINUX"
    },
    "registeredAt": "2025-01-30T22:39:09.649Z",
    "registeredBy": "arn:aws:iam::982534392197:root",
    "enableFaultInjection": false,
    "tags": []
}

Realmente tô bem encucado com isso