Hi,
The code in this file is probably a bit more involved and harder to decipher, but it is just parsing functions really. To get useful data from docker and/or env variables
Makefile.settings:
Makefile.settings
YELLOW := "\e[1;33m" NC := "\e[0m" INFO := @bash -c 'printf $(YELLOW); echo "=> $$1"; printf $(NC)' MESSAGE ARGS := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS)) SHELL = bash # Slave arguments ifeq ($(firstword $(MAKECMDGOALS)),$(filter $(firstword $(MAKECMDGOALS)),slave)) SLAVE_ARGS := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS)) SLAVE_COUNT = $(if $(SLAVE_ARGS),$(firstword $(SLAVE_ARGS)),1) endif # Docker host settings DOCKER_HOST_IP := $(shell echo $$DOCKER_HOST | awk -F/ '{printf $$3}' | awk -F: '{printf $$1}') DOCKER_HOST_IP := $(if $(DOCKER_HOST_IP),$(DOCKER_HOST_IP),localhost) # Image and Repository Tag introspection functions # Syntax: $(call get_image_id,<docker-compose-environment>,<service-name>) # Syntax: $(call get_repo_tags,<docker-compose-environment>,<service-name>,<fully-qualified-image-name>) get_container_id = $$(docker-compose $(1) ps -q $(2)) get_image_id = $$(echo $(call get_container_id,$(1),$(2)) | xargs -I ARGS docker inspect -f '{{ .Image }}' ARGS) get_container_state = $$(echo $(call get_container_id,$(1),$(2)) | xargs -I ID docker inspect -f '$(3)' ID) filter_repo_tags = $(if $(findstring docker.io,$(1)),$(subst docker.io/,,$(1))[^[:space:]|\$$]*,$(1)[^[:space:]|\$$]*) get_repo_tags = $$(echo $(call get_image_id,$(1),$(2)) | xargs -I ID docker inspect -f '{{range .RepoTags}}{{.}} {{end}}' ID | grep -oh "$(call filter_repo_tags,$(3))" | xargs) # Port introspection functions # Syntax: $(call get_port_mapping,<service-name>,<internal-port>) get_raw_port_mapping = $$(docker-compose ps -q $(1) | xargs -I ID docker port ID $(2)) get_port_mapping = $$(echo $$(IFS=':' read -r -a array <<< "$(call get_raw_port_mapping,$(1),$(2))" && echo "$${array[1]}")) # Service health functions # Syntax: $(call check_service_health,<docker-compose-environment>,<service-name>) get_service_health = $$(echo $(call get_container_state,$(1),$(2),{{if .State.Running}}{{ .State.Health.Status }}{{end}})) check_service_health = { \ until [[ $(call get_service_health,$(1),$(2)) != starting ]]; \ do sleep 1; \ done; \ if [[ $(call get_service_health,$(1),$(2)) != healthy ]]; \ then echo $(2) failed health check; exit 1; \ fi; \ } # AWS assume role settings # Attempts to assume IAM role using STS # Syntax: $(call assume_role,<role-arn>) get_assume_session = aws sts assume-role --role-arn=$(1) --role-session-name=admin get_assume_credential = jq --null-input '$(1)' | jq .Credentials.$(2) -r define assume_role $(eval AWS_SESSION = $(shell $(call get_assume_session,$(1)))) $(eval export AWS_ACCESS_KEY_ID = $(shell $(call get_assume_credential,$(AWS_SESSION),AccessKeyId))) $(eval export AWS_SECRET_ACCESS_KEY = $(shell $(call get_assume_credential,$(AWS_SESSION),SecretAccessKey))) $(eval export AWS_SESSION_TOKEN = $(shell $(call get_assume_credential,$(AWS_SESSION),SessionToken))) endef
Just the first 3 lines are worth it
Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink.
Hide child comments as well
Confirm
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Hi,
The code in this file is probably a bit more involved and harder to decipher, but it is just parsing functions really.
To get useful data from docker and/or env variables
Makefile.settings:Just the first 3 lines are worth it