Docker Контейнер не работает в AWS ECS с использованием AWS ECR - PullRequest
1 голос
/ 10 июля 2020

У меня один контейнер docker, и его нужно развернуть в AWS облаке с использованием AWS ECR с Elasti c Beanstalk. Я использую файл Dockerrun.aws.json, чтобы предоставить информацию о деталях репозитория. Я отправил свой образ в свой docker хаб и Elasti c Container Registry.

Используя DockerHub в ECS, он может извлечь образ docker из docker хаба и запустить контейнер без каких-либо проблем и работает с приложением должным образом. С другой стороны, контейнер останавливается, когда изображение извлекается из AWS репозитория ECR для того же приложения. Развертывание не удалось по следующей причине: 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"
}

Я вошел в экземпляр и попытался получить журналы контейнеров. Но я получил эту ошибку 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"]

Пожалуйста, помогите !!!

Ответы [ 2 ]

2 голосов
/ 10 июля 2020

Похоже, что в определении задачи есть контейнер depended on docker или файл docker -compose.

Эта ошибка возникает у вас есть контейнер B, который открыт на A и A является специальным для служб, поэтому контейнер B будет автоматически завершен.

Вам нужно отладить, почему A является выходом.

Основной контейнер в задаче завершен

Если контейнер, помеченный как важный в определениях задач, завершается или умирает, это может привести к остановке задачи. Когда выход важного контейнера является причиной остановленной задачи, Шаг 6 может предоставить дополнительную диагностическую c информацию о том, почему остановился контейнер.

остановлено -task-errors

0 голосов
/ 11 июля 2020

Проблема заключается в AWS проекте CodeBuild. Я по ошибке указал неправильную архитектуру для сборки. Образ docker построен на другой архитектуре и пытается работать на другой архитектуре в состоянии развертывания. Я перешел на ту же архитектуру, которая используется для развертывания. И образ концентратора docker, и образ ECR работают нормально.

...