Я перевожу одно из своих приложений AWS Elastic Beanstalk на Docker, используя конфигурацию Multi-container Docker из Elastic Beanstalk. Я создал новое приложение EB с новой средой. Когда я пытаюсь развернуть Dockerrun.aws.json
config, EB в конечном итоге выходит из строя со следующей ошибкой на вкладке событий:
Service:AmazonECS, Code:ClientException, Message:Invalid setting for
container 'api'. At least one of 'memory' or 'memoryReservation' must
be specified., Class:com.amazonaws.services.ecs.model.ClientException
Мой Dockerrun.aws.json
config выглядит примерно так:
{
"AWSEBDockerrunVersion": 2,
"containerDefinitions": [
{
"name": "api_proxy",
"image": "{account_id}.dkr.ecr.us-east-1.amazonaws.com/{repo}:latest",
"essential": true,
"memory": 128,
"portMappings": [
{
"hostPort": 80,
"containerPort": 80
}
],
"links": [
"api"
]
},
{
"name": "api",
"image": "{account_id}.dkr.ecr.us-east-1.amazonaws.com/{repo}:latest",
"environment": {
"DJANGO_SETTINGS_MODULE": "api.aws"
},
"essential": true,
"memory": 128
}
]
}
Любая помощь обязательно будет оценена.
Обновление 2018-02-15:
Мой текущий процесс развертывания выглядит следующим образом. Сначала я создаю образы Docker и загружаю их в Amazon ECR. Затем я застегиваю Dockerrun.aws.json
файл. Поскольку это первое развертывание приложения в новой среде AWS EB, в настоящее время я загружаю zip-файл в процессе создания среды. Я выбираю платформу Preconfigured platform: Multi-container Docker
. Для кода приложения я загружаю свой zip-файл, содержащий Dockerrun.aws.json
файл.
Насколько я могу судить по вне док - параметр среды должен быть массивом объектов, поэтому ваш json должен выглядеть как
{
"AWSEBDockerrunVersion": 2,
"containerDefinitions": [{
"name": "api",
"image": "nginx:latest",
"essential": true,
"memory": 128,
"environment": [{
"name": "DJANGO_SETTINGS_MODULE",
"value": "api.aws"
}]
},{
"name": "api_proxy",
"image": "nginx:latest",
"essential": true,
"memory": 128,
"links": ["api"],
"portMappings": [{
"hostPort": 80,
"containerPort": 80
}]
}]
}
По крайней мере, мне удалось запустить среду с указанным выше json