AWS_PROFILE ?= gdb-infra-dev AWS_ACCOUNT ?= 483193324480 AWS_REGION ?= us-east-1 ECR_REGISTRY = ${AWS_ACCOUNT}.dkr.ecr.${AWS_REGION}.amazonaws.com/python REVISION ?= $(shell git rev-parse --short=8 HEAD) BUILDTIME = $(shell date -u +"%Y%m%d%H%M%S") VERSION_REVISION ?= ${PYTHON_VERSION}-${REVISION} PYTHON_IMAGE_VERSION ?= ${PYTHON_VERSION}-${VERSION} ## docker/login - login to AWS ECR registry using docker, aws configuration need to be set first .PHONY:docker/login docker/login: @set -o pipefail; aws ecr get-login \ --profile $(AWS_PROFILE) \ --no-include-email \ --region $(AWS_REGION) | awk '{print $$6}' | \ docker login -u AWS --password-stdin https://$(ECR_REGISTRY) || aws ecr get-login-password \ --profile $(AWS_PROFILE) \ --region $(AWS_REGION) | \ docker login --username AWS --password-stdin https://$(ECR_REGISTRY) ## docker/image/build - build docker image .PHONY: docker/image/build docker/image/build: @docker buildx build \ --no-cache \ --build-arg REVISION=${REVISION} \ --build-arg BUILDTIME=${BUILDTIME} \ -t ${ECR_REGISTRY}:${PYTHON_VERSION} \ -t ${ECR_REGISTRY}:${VERSION_REVISION} \ --platform linux/amd64,linux/arm64 --push . ## docker/image/pull - pull docker image from ECR registry, requires auth .PHONY: docker/image/pull docker/image/pull: @docker pull ${ECR_REGISTRY}:${PYTHON_VERSION} @docker pull ${ECR_REGISTRY}:${VERSION_REVISION} ## docker/image/push - push docker image to ECR registry, requires auth .PHONY: docker/image/push docker/image/push: @docker push ${ECR_REGISTRY}:${PYTHON_VERSION} @docker push ${ECR_REGISTRY}:${VERSION_REVISION} ## - ## help - this message .PHONY: help help: Makefile @echo -e "Run command:\n make \n" @echo -e "Targets:\n" @grep -E -h '^## .*' $(MAKEFILE_LIST) | sed -n 's/^##//p' | column -t -s '-' | sed -e 's/^/ /'