Tengo un contenedor docker único y tengo que implementarlo en la nube de AWS usando AWS ECR con Elastic Beanstalk. Estoy usando el archivo Dockerrun.aws.json para proporcionar información sobre los detalles del repositorio. Empujé mi imagen a mi docker hub y Elastic Container Registry.
Al usar DockerHub en ECS, puede extraer la imagen de la ventana acoplable desde el centro de la ventana acoplable e iniciar el contenedor sin ningún problema y hacer que la aplicación funcione como se esperaba. Por otro lado, el contenedor se detiene cuando la imagen se extrae del repositorio de AWS ECR para la misma aplicación. La implementación falla por el motivo: se Essential container in task exited
Dockerrun.aws.json
{ "containerDefinitions": [ { "essential": true, "image": "01234567891.dkr.ecr.us-east-1.amazonaws.com/app:1", "memory": 512, "name": "web", "portMappings": [ { "containerPort": 5000, "hostPort": 80 } ] } ], "family": "", "volumes": [], "AWSEBDockerrunVersion": "2" } Inicié sesión en la instancia e intenté obtener los registros de los contenedores. Pero recibí este error standard_init_linux.go:211: exec user process caused "exec format error"
Dockerfile
FROM python:3.4-alpine ADD . /code WORKDIR /code RUN pip install -r requirements.txt CMD ["python", "app.py"]Parece que depended on contenedor docker en la definición de la tarea o el archivo docker-compose.
Este error ocurre porque tiene el contenedor B que está abierto en A y A es esencial para los servicios, por lo que el contenedor B se cerrará automáticamente.
Debe depurar por qué A es exit.
Se salió del contenedor esencial en la tarea
Si un contenedor marcado como esencial en las definiciones de tareas sale o muere, eso puede hacer que una tarea se detenga. Cuando la salida de un contenedor esencial es la causa de una tarea detenida, el Paso 6 puede proporcionar más información de diagnóstico sobre por qué se detuvo el contenedor.
El problema radica en AWS CodeBuild Project. He proporcionado por error la arquitectura incorrecta para la compilación. La imagen de la ventana acoplable se basó en una arquitectura diferente e intentó ejecutarse en la arquitectura diferente en el estado de implementación. Cambié a la misma arquitectura que se usa para la implementación. Tanto la imagen del concentrador acoplable como la imagen de ECR parecen funcionar bien.