Как получить встроенный образ докера внутри кодовой линии на этапе развертывания с помощью сине-зеленого развертывания - PullRequest
2 голосов
/ 22 марта 2019

У меня есть поток, в котором я хочу, чтобы кодовая линия запускалась при git-коммитах на Github, прошла несколько этапов тестирования и сборки и закончилась этапом развертывания кода, где код будет развернут в кластере ECS с синим / зеленым цветом.развертывание.Но я застрял на последнем шаге о том, как получить изображение на шаг CodeDeploy.

Конвейер выглядит так:

Source (GitHub) -> Test -> Build,создает образ докера, который загружается в ECR.Артефакт содержит appspec.yaml, taskdefinition.json, imagedefinitions.json.-> Развернуть (CodeDeployToECS), используя артефакт из шага сборки.

Последний шаг в конвейере настраивается с поставщиком «CodeDeployToECS».Но что я не могу понять, так это то, как я получаю образ, созданный на этапе сборки, чтобы он оказался на этапе CodeDeploy, использующем синий / зеленый-развертывание.

Я ознакомился с этим руководством: https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-ecs-ecr-codedeploy.html но они используют изображение из исходного этапа в качестве артефакта на этапе CodeDeploy, которое не соответствует моему сценарию использования.

Это руководство предназначено для развертывания с ECS с непрерывным обновлением, котороена лету создает файл imagedefinitions.json, который я пытаюсь применить, но он не будет работать: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-cd-pipeline.html

При указанной выше настройке шаг развертывания просто говорит мне, что артефакт изображения недействителен.Любые указатели, если это возможно, или любой обходной путь?

1 Ответ

3 голосов
/ 25 марта 2019

Я нашел ответ, чтобы создать артефакт изображения, вам нужно сгенерировать файл imageDetail.json, который является объектом JSON с одним свойством с именем ImageURI и URI к изображению. Я следовал этой теме, чтобы добраться до этого факта: https://forums.aws.amazon.com/message.jspa?messageID=881131

...