Преобразование контейнера дает ошибку отсутствующего параметра изображения - PullRequest
1 голос
/ 05 мая 2020

Пока я пытался преобразовать файл Docker compose с преобразованием контейнера , я получил следующую ошибку:

Container "container-name" is missing required parameter 'image'.

Services с параметром изображения, он работает нормально. Однако те, у которых есть параметр сборки вместо изображения, вызывают ошибку. Я хочу создать некоторые изображения на основе Dockerfile с помощью параметра сборки, и мне вообще не нужен параметр изображения в файле compose Docker. Какое здесь решение было бы наиболее эффективным?

Вот пример:

Успешное преобразование для службы db:

Docker -compose.yml :

db:
 image: postgres

Dockerrun. aws. json:

 "containerDefinitions": [
        {
            "essential": true,
            "image": "postgres",
            "memory": 128,
            "mountPoints": [
                {
                    "containerPath": "/var/lib/postgresql/data/",
                    "sourceVolume": "Postgresql"
                }
            ],
            "name": "db"
        }

Неудачное преобразование для службы web с момента использования build вместо параметра image:

Docker -compose.yml:

web:
 build: 
  context: .
  dockerfile: Dockerfile

1 Ответ

1 голос
/ 05 мая 2020

Проблема в том, что определение задачи AWS ECS (= elasti c container service) не может зависеть от Dockerfile для создания образа. Образ должен быть уже создан, чтобы его можно было использовать в определении задачи. По этой причине ключ "image" требуется в файле определения задачи json, и поэтому он должен быть и в файле docker -compose, из которого вы конвертируете.

Изображение для определения задачи может поступать из Docker хаба (как это делает образ postgres) или вы можете создавать свои собственные образы и sh их преобразовывать в AWS ECR (= elasti c реестр контейнеров).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...