Как загрузить файл Project+Dockerfile и выполнить сборку на AWS вместо того, чтобы выполнять сборку локально и загружать образ докера в ECS?

Поскольку мой проект (nodejs) + файл Docker довольно мал (‹10 МБ), но образ докера может достигать 700 МБ.

Для сравнения, сборка моего докера локально (с предварительно загруженной базой образа докера, т. е. ОС) и установка node_modules займет около 30 секунд.

Загрузка созданного образа докера (700 МБ) в Amazon ECS занимает у меня около 10 минут.

Поэтому я подумал, могу ли я просто загрузить свой проект и файл Dockerfile в AWS, запустить там сборку, и я ожидал, что они также будут управлять промежуточным/базовым образом.

Я ожидаю потратить свое время только на загрузку файла гораздо меньшего размера 10 МБ по сравнению с 700 МБ и запустить сборку докера в течение 30 секунд.


person Anjar Wicaksono    schedule 13.04.2018    source источник
comment
Я не в курсе, что ты можешь.   -  person kpie    schedule 13.04.2018


Ответы (1)


Это можно сделать двумя способами

Первый — лучший подход, и он соответствует многим отраслевым стандартам и упоминается здесь.

https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-basics.html

1-й:

Создайте небольшой или микро-экземпляр t2. Назначьте role to that instance или Вы можете configure AWS cli. Затем в экземпляре EC2 клонируйте ваш проект + dockerfile

Таким образом, ваш процесс сборки и отправка будут быстрее по сравнению с вашей локальной системой.

eval $(aws ecr get-login --no-include-email --region us-west-2)
docker build -t hello-world .
docker tag hello-world aws_account_id.dkr.ecr.us-east-1.amazonaws.com/hello-world
docker push aws_account_id.dkr.ecr.us-east-1.amazonaws.com/hello-world

2-й:

В экземпляре контейнера клонируйте свой проект + файл докера и создайте образ в ECS container instance вместо локальной системы и отправьте этот образ в AWS ECR. как упоминалось в шаге 1. Вам необходимо настроить AWS cli или лучше всего назначить роль экземпляру контейнера.

https://aws.amazon.com/blogs/security/easyly-replace-or-attach-an-iam-role-to-an-existing-ec2-instance-by-using-the-ec2-console/

person Adiii    schedule 13.04.2018