Я считаю, что правильным подходом здесь было бы дважды нажать одно и то же изображение с разными тегами. Одно нажатие будет включать изображение без тега, а затем второе нажатие будет таким же изображением после того, как вы отметили его.
Обратите внимание, что вам не нужно создавать изображение дважды. Вам нужно всего лишь выдать docker push
дважды.
ECR достаточно «умный», чтобы распознать, что дайджест изображения не изменился, и он не будет пытаться загрузить изображение дважды. При втором нажатии только тег будет отправлен в ECR.
Теперь, когда у вас есть версия без тега и версия с тегом, вы можете извлечь изображение без спецификации тега, и вы получите изображение :latest
. Вот ссылка на документацию AWS , где говорится, что тег :latest
будет добавлен, если пользователь не отправил тег.
Поток будет выглядеть примерно так:
# Build the image
docker build -f ./Dockerfile -t my-web-app
# Push the untagged image (will become the ":latest")
docker push my-web-app
# Tag the image with your build_number
docker tag my-web-app my-web-app:build_number
# Push the tagged image
docker push my-web-app:build_number
Теперь вы сможете:
docker pull my-web-app:build_number
docker pull my-web-app
, что приведет к 2 одинаковым изображениям с разграничением только тега.