Last active
August 31, 2021 23:25
-
-
Save jburditt/cb7d9ade8c7883514a51d6b46d340af9 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
network = <network_name> | |
repository = <repository_path> | |
# works on Windows (Git Bash, Powershell, Command Prompt) and Mac (bash, zsh, Powershell) | |
path := ${PWD} | |
ifeq ($(path),) | |
path := ${CURDIR} | |
endif | |
# let's make makefile make no files | |
#.PHONY: build-default $(MAKECMDGOALS) | |
build-default: | |
docker build -t $(tag) . | |
run-default: | |
docker run --network="$(network)" --rm --name $(container) $(tag) | |
ps: | |
docker ps -a --format "table {{.Names}}\t{{.ID}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}" | |
bash-default: | |
docker exec -it $(container) sh | |
stop-default: | |
-docker stop $(container) | |
rm: stop | |
docker rm $(container) | |
logs: | |
docker logs $(container) | |
network: | |
docker network create $(network) | |
login: | |
docker login -u AWS -p $$(aws ecr get-login-password --region us-east-1) $(repository) | |
prune: | |
docker image prune | |
test: tagname = test | |
test: pushtag | |
version-default: tagname = $(v) | |
version-default: check-version pushtag | |
pushtag: build login | |
docker tag $(tag) $(repository)/$(tag):$(tagname) | |
docker push $(repository)/$(tag):$(tagname) | |
# hack to avoid warnings of overriding commands | |
%: %-default | |
@ true | |
# use $(call check_defined, var) to require var to be defined | |
check_defined = \ | |
$(strip $(foreach 1,$1, \ | |
$(call __check_defined,$1,$(strip $(value 2))))) | |
__check_defined = \ | |
$(if $(value $1),, \ | |
$(error Undefined $1$(if $2, ($2)))) | |
check-version: | |
ifndef v | |
$(error v is undefined. Use "make version v=1.8.3") | |
endif |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment