У меня есть образ докера 1.46 ГБ на моем локальном компьютере, но когда он помещается в AWS ECR (либо через мой локальный компьютер, либо через развертывание CicleCI), он составляет всего 537.05 МБ.Я довольно новичок в Docker и в AWS, поэтому любая помощь в выяснении того, почему это может быть полезным, будет оценена!
У меня такое ощущение, что по какой-то причине он не был полностью загружен в ECR, так какЯ пытаюсь использовать этот контейнер для пакетного задания, но по какой-то причине та же команда, которая работает при локальном использовании, не работает при использовании в определении задания.Это просто команда python app.py
, но я также пытался использовать абсолютный путь python /usr/local/src/app/app.py
, что приводит к [Errno 2] No such file or directory
.
Команды, используемые в моем развертывании Makefile, следующие:
docker build --force-rm=true -t $(EXTRACTOR_IMAGE_NAME) ./extractor
docker tag $(EXTRACTOR_IMAGE_NAME) $(EXTRACTOR_ECR_IMAGE_NAME)
$(shell aws ecr get-login --no-include-email)
docker push ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com/$(EXTRACTOR_ECR_REPO)
Редактировать 1: Я думаю, что это может быть связано с размером базового изображения, в данном случае это python: 2.7.Базовое изображение составляет 914 МБ, плюс размер моего изображения ECR 537,05 МБ = 1451,05 МБ, т.е. около 1,46 ГБ.Все еще не уверен, в чем проблема с командой Batch, хотя ...
Редактировать 2: Я монтировал код в свой контейнер с помощью тома, вот почему это работаетна местном уровне.Во время сборки я забыл скопировать код в контейнер, который, как я полагаю, является единственной причиной, по которой это не работает в пакетном режиме!