是否有一个AWS CLI命令可以简单地将我的图像tar加载到AWS?(我的电脑上根本没有docker,我也不想增加CD管道的图像大小,因为我更喜欢保持它非常非常小,因为它增加了在circleCI/githubCI中启动的时间(。
有办法做到这一点吗?
如果没有,用docker做这件事的方法是什么,这样我就不必上传到本地docker注册表,而是可以直接加载到AWS ECR。
上下文:我们的CI作业建立在PR上,并在图像上写入版本/内部版本号,并写入PR上CI中的文件中,但在主分支上之前,这些都不应该部署。PR不能合并到主服务器,直到主服务器的最新版本,并且主服务器合并到PR会再次触发CI,因此PR在登录主服务器时保证是最新的。此CI作业具有可以由CD部署的工件(即,不需要重新构建它,这有时需要一段时间(我们的CD作业在合并时触发,以掌握和读取工件,并需要将它们部署到AWS ECR,而我们CD的图像非常非常小,现在只有AWS工具(不需要java,不需要gradle等(。
我很抱歉,因为我不完全理解您的需求,但也许您可以以某种方式使用像skopeo这样的工具。
除其他外,它将允许您将容器tar复制到不同的注册表中,包括AWS ECR,而无需安装docker,类似于以下内容:
skopeo login -u AWS -p $(aws ecr get-login-password) 111111111.dkr.ecr.us-east-1.amazonaws.com
skopeo copy docker-archive:build/your-jib-image.tar docker://111111111.dkr.ecr.us-east-1.amazonaws.com/myimage:latest
GoogleContainerTools
存储库中记录了这种方法以及Github问题的可能解决方案。
在这个问题上,他们推荐了另一个名为crane的工具,尽管我从未测试过它,但它的用途与skopeo
相似