我在本地计算机上有一个1.46GB的docker映像,但是当将此映像推送到AWS ECR(通过我的本地计算机或通过CicleCI部署)时,它只有537.05MB。我对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)
Run Code Online (Sandbox Code Playgroud)
编辑1: 我认为这可能与基本图像的大小有关,在这种情况下为python:2.7。基本映像为914MB,加上我的ECR映像的大小为537.05MB = 1451.05MB,即约1.46GB。不过仍然不确定Batch命令的问题是什么...
编辑2: 我一直在使用卷将代码装载到我的容器中,这就是为什么它一直在本地工作的原因。在构建时,我忘记了将代码复制到容器中,我认为这是无法在批处理中运行的唯一原因!