play stack one by one

This commit is contained in:
2025-02-02 21:20:39 +01:00
parent 2544559b39
commit 69ea64df4c
29 changed files with 143 additions and 86 deletions
+4 -2
View File
@@ -5,7 +5,8 @@
# on local host
.PHONY: build-env
build-env: SERVICE ?= $(DOCKER_SERVICE)
build-env: bootstrap
build-env: APP_NAME := $(subst _,,$(subst -,,$(subst .,,$(call LOWERCASE,$(firstword $(subst /, ,$(STACK)))))))
build-env: bootstrap stack
$(call docker-compose-exec-sh,$(SERVICE), \
rm -f .env \
&& make .env ENV=$(ENV) \
@@ -25,7 +26,8 @@ build-init:
# on local host
.PHONY: build-shared
build-shared: SERVICE ?= $(DOCKER_SERVICE)
build-shared: bootstrap
build-shared: APP_NAME := $(subst _,,$(subst -,,$(subst .,,$(call LOWERCASE,$(firstword $(subst /, ,$(STACK)))))))
build-shared: bootstrap stack
$(call docker-compose-exec-sh,$(SERVICE), \
mkdir -p /$(notdir $(SHARED)) \
&& $(foreach folder,$(SHARED_FOLDERS), \
+22 -18
View File
@@ -32,7 +32,7 @@ bootstrap-stack: docker-network debug-STACK $(foreach stack,$(STACK),bootstrap-s
# target build: Build application docker images to run
# on local host
.PHONY: build
build: docker-compose-build ## Build application docker images
build: docker-stack-build ## Build application docker images
# target build@%: Build application docker images of % ENV
# on local host
@@ -50,22 +50,24 @@ build@%: myos-user
# target clean: Clean application and docker images
# on local host
.PHONY: clean app-clean
clean: app-clean docker-rm docker-images-rm docker-volume-rm .env-clean ## Clean application and docker stuffs
clean: DOCKER_COMPOSE_DOWN_OPTIONS += --rmi all --volumes
clean: app-clean docker-stack-down $(foreach stack,$(STACK),docker-image-rm-$(STACK)) .env-clean ## Clean application and docker stuffs
# target clean@%: Clean deployed application and docker images of % ENV
# on local host
.PHONY: clean@%
clean@%: docker-rm docker-image-rm docker-volume-rm;
clean@%: DOCKER_COMPOSE_DOWN_OPTIONS += --rmi all --volumes
clean@%: docker-stack-down;
# target config: View application docker compose file
# on local host
.PHONY: config
config: docker-compose-config ## View application docker compose file
config: docker-stack-config ## View application docker compose file
# target connect: Connect to docker SERVICE
# on local host
.PHONY: connect
connect: docker-compose-connect ## Connect to docker SERVICE
connect: docker-stack-connect ## Connect to docker SERVICE
# target connect@%: Connect to docker SERVICE of % ENV
# on first remote host
@@ -81,13 +83,14 @@ deploy: $(if $(filter $(ENV),$(ENV_DEPLOY)),deploy-localhost,deploy@$(ENV)) ## D
# target down: Remove application dockers
# on local host
.PHONY: down
down: docker-compose-down ufw-delete ## Remove application dockers
down: docker-stack-down ufw-delete ## Remove application dockers
# target exec: Exec ARGS in docker SERVICE
# on local host
.PHONY: exec
exec: SERVICE ?= $(DOCKER_SERVICE)
exec: ## Exec command in docker SERVICE
exec: APP_NAME := $(subst _,,$(subst -,,$(subst .,,$(call LOWERCASE,$(firstword $(subst /, ,$(STACK)))))))
exec: stack ## Exec command in docker SERVICE
#ifneq (,$(filter $(ENV),$(ENV_DEPLOY)))
# $(RUN) $(call exec,$(ARGS))
#else
@@ -98,7 +101,7 @@ exec: ## Exec command in docker SERVICE
# on all remote hosts
.PHONY: exec@%
exec@%: SERVICE ?= $(DOCKER_SERVICE)
exec@%:
exec@%: stack
$(call make,ssh-exec,$(MYOS),APP ARGS SERVICE)
# target force-%: Fire targets %, stack-user-% and stack-host-%
@@ -114,17 +117,17 @@ install: bootstrap app-install ## Install application
# target logs: Display application dockers logs
# on local host
.PHONY: logs
logs: docker-compose-logs ## Display application dockers logs
logs: docker-stack-logs ## Display application dockers logs
# target ps: List application dockers
# on local host
.PHONY: ps
ps: docker-compose-ps ## List application dockers
ps: docker-stack-ps ## List application dockers
# target rebuild: Rebuild application docker images
# on local host
.PHONY: rebuild
rebuild: docker-compose-rebuild ## Rebuild application dockers images
rebuild: docker-stack-rebuild ## Rebuild application dockers images
# target rebuild@%: Rebuild application docker images
# on local host
@@ -135,7 +138,7 @@ rebuild@%:
# target recreate: Recreate application dockers
# on local host
.PHONY: recreate
recreate: docker-compose-recreate app-start ## Recreate application dockers
recreate: docker-stack-recreate app-start ## Recreate application dockers
# target reinstall: Fire clean, Call .env target, Call install target
# on local host
@@ -151,13 +154,14 @@ release: release-create ## Create release VERSION
# target restart: Restart application dockers
# on local host
.PHONY: restart
restart: docker-compose-restart app-start ## Restart application
restart: docker-stack-restart app-start ## Restart application
# target run: Run command ARGS in a new docker SERVICE
# on local host
.PHONY: run
run: SERVICE ?= $(or $(DOCKER_COMPOSE_SERVICE),$(DOCKER_SERVICE))
run: ## Run a command in a new docker
run: APP_NAME := $(subst _,,$(subst -,,$(subst .,,$(call LOWERCASE,$(firstword $(subst /, ,$(STACK)))))))
run: stack ## Run a command in a new docker
#ifneq (,$(filter $(ENV),$(ENV_DEPLOY)))
# $(call run,$(ARGS))
#else
@@ -175,7 +179,7 @@ run@%:
# target scale: Scale SERVICE application to NUM dockers
# on local host
.PHONY: scale
scale: docker-compose-scale ## Scale SERVICE application to NUM dockers
scale: docker-stack-scale ## Scale SERVICE application to NUM dockers
# target shutdown: remove application, host and user dockers
# on local host
@@ -212,12 +216,12 @@ stack-%:
# target start app-start: Start application dockers
# on local host
.PHONY: start app-start
start: docker-compose-start ## Start application dockers
start: docker-stack-start ## Start application dockers
# target stop: Stop application dockers
# on local host
.PHONY: stop
stop: docker-compose-stop ## Stop application dockers
stop: docker-stack-stop ## Stop application dockers
# target tests app-tests: Test application
# on local host
@@ -227,7 +231,7 @@ tests: app-tests ## Test application
# target up: Create and start application dockers
# on local host
.PHONY: up
up: docker-compose-up ufw-update app-start ## Create application dockers
up: docker-stack-up ufw-update app-start ## Create application dockers
# target update app-update: Update application files
# on local host
+8 -3
View File
@@ -1,6 +1,8 @@
COMPOSE_FILE_DEBUG ?= $(if $(DEBUG),true)
COMPOSE_FILE_DNS ?= false
COMPOSE_FILE_HOME ?= false
COMPOSE_FILE_LABELS ?= true
COMPOSE_FILE_NETWORKS ?= true
COMPOSE_FILE_NFS ?= $(MOUNT_NFS)
COMPOSE_FILE_SSH ?= true
ifneq ($(SUBREPO),)
@@ -8,7 +10,8 @@ COMPOSE_FILE_SUBREPO ?= true
else
COMPOSE_FILE_APP ?= true
endif
COMPOSE_FILE_SUFFIX ?= $(foreach suffix,$(call LOWERCASE,$(filter-out SUFFIX,$(patsubst COMPOSE_FILE_%,%,$(filter COMPOSE_FILE_%,$(MAKE_FILE_VARS))))),$(if $(filter-out false False FALSE,$(COMPOSE_FILE_$(call UPPERCASE,$(suffix)))),$(suffix)))
COMPOSE_FILE_SUFFIX ?= $(foreach suffix,$(call LOWERCASE,$(filter-out SUFFIX,$(patsubst COMPOSE_FILE_%,%,$(filter COMPOSE_FILE_%,$(MAKE_CMD_VARS) $(MAKE_ENV_VARS) $(MAKE_FILE_VARS))))),$(if $(filter-out false False FALSE,$(COMPOSE_FILE_$(call UPPERCASE,$(suffix)))),$(suffix) $(foreach service,$(filter-out true True TRUE,$(COMPOSE_FILE_$(call UPPERCASE,$(suffix)))),$(suffix).$(service))))
COMPOSE_FILE_VOLUMES ?= true
COMPOSE_FILE_WWW ?= false
COMPOSE_IGNORE_ORPHANS ?= false
COMPOSE_PROJECT_NAME ?= $(if $(DOCKER_COMPOSE_PROJECT_NAME),$(DOCKER_COMPOSE_PROJECT_NAME),$(subst .,,$(call LOWERCASE,$(USER)-$(APP_NAME)-$(ENV)$(addprefix -,$(subst /,,$(subst -,,$(APP_PATH)))))))
@@ -16,6 +19,7 @@ COMPOSE_SERVICE_NAME ?= $(if $(DOCKER_COMPOSE_SERVICE_NAME),$(DOCKER_
COMPOSE_VERSION ?= 2.24.4
CONTEXT += COMPOSE_FILE DOCKER_REPOSITORY
CONTEXT_DEBUG += DOCKER_BUILD_TARGET DOCKER_COMPOSE_PROJECT_NAME DOCKER_IMAGE_TAG DOCKER_REGISTRY DOCKER_SERVICE DOCKER_SERVICES
DOCKER_ARGS ?= --log-level=$(LOG_LEVEL)
DOCKER_AUTHOR ?= $(DOCKER_AUTHOR_NAME) <$(DOCKER_AUTHOR_EMAIL)>
DOCKER_AUTHOR_EMAIL ?= $(subst +git,+docker,$(GIT_AUTHOR_EMAIL))
DOCKER_AUTHOR_NAME ?= $(GIT_AUTHOR_NAME)
@@ -27,7 +31,7 @@ DOCKER_BUILD_TARGET ?= $(if $(filter $(ENV),$(DOCKER_BUILD_TARGETS))
DOCKER_BUILD_TARGET_DEFAULT ?= master
DOCKER_BUILD_TARGETS ?= $(ENV_DEPLOY)
DOCKER_BUILD_VARS ?= APP BRANCH COMPOSE_VERSION DOCKER_GID DOCKER_MACHINE DOCKER_REPOSITORY DOCKER_SYSTEM GIT_AUTHOR_EMAIL GIT_AUTHOR_NAME SSH_REMOTE_HOSTS USER VERSION
DOCKER_COMPOSE ?= $(or $(shell $(call verle,$(COMPOSE_VERSION),$(shell docker compose version --short 2>/dev/null)) && printf 'docker compose\n'),$(shell $(call verle,$(COMPOSE_VERSION),$(shell docker-compose version --short 2>/dev/null)) && printf 'docker-compose\n'))
DOCKER_COMPOSE ?= $(or $(shell $(call verle,$(COMPOSE_VERSION),$(shell docker compose version --short 2>/dev/null)) && printf 'docker $(DOCKER_ARGS) compose\n'),$(shell $(call verle,$(COMPOSE_VERSION),$(shell docker-compose version --short 2>/dev/null)) && printf 'docker-compose\n'))
DOCKER_COMPOSE_ARGS ?= --ansi=auto
DOCKER_COMPOSE_DOWN_OPTIONS ?=
DOCKER_COMPOSE_FILE ?= docker-compose
@@ -38,7 +42,7 @@ DOCKER_COMPOSE_RUN_OPTIONS ?= --rm $(DOCKER_COMPOSE_RUN_ENTRYPOINT) $(DOCKE
DOCKER_COMPOSE_RUN_WORKDIR ?= $(if $(DOCKER_COMPOSE_WORKDIR),-w $(DOCKER_COMPOSE_WORKDIR))
DOCKER_COMPOSE_SERVICE_NAME ?= $(subst _,-,$(DOCKER_COMPOSE_PROJECT_NAME))
DOCKER_COMPOSE_UP_OPTIONS ?= -d
DOCKER_IMAGE_TAG ?= $(if $(filter true,$(DEPLOY)),$(if $(filter $(ENV),$(ENV_DEPLOY)),$(VERSION)),$(if $(DRONE_BUILD_NUMBER),$(DRONE_BUILD_NUMBER),latest))
DOCKER_IMAGE_TAG ?= $(if $(filter true,$(DEPLOY)),$(if $(filter $(ENV),$(ENV_DEPLOY)),$(VERSION)),$(if $(DRONE_BUILD_NUMBER),$(DRONE_BUILD_NUMBER),$(ENV)))
DOCKER_IMAGES ?= $(patsubst %/,%,$(patsubst docker/%,%,$(dir $(wildcard docker/*/Dockerfile))))
DOCKER_PLUGIN ?= rexray/s3fs:latest
DOCKER_PLUGIN_ARGS ?= $(foreach var,$(DOCKER_PLUGIN_VARS),$(if $(DOCKER_PLUGIN_$(var)),$(var)='$(DOCKER_PLUGIN_$(var))'))
@@ -95,6 +99,7 @@ define docker-commit
$(RUN) docker commit $(container) $(repository):$(tag)
endef
# function docker-compose: Run docker-compose with arg 1
# TODO: accept $2 COMPOSE_FILE and remove stack from prereq
define docker-compose
$(call INFO,docker-compose,$(1))
$(if $(COMPOSE_FILE),
+5 -5
View File
@@ -19,10 +19,9 @@ APP_REPOSITORY_SCHEME ?= $(shell printf '$(APP_REPOSITORY_URL)\n' |sed
APP_REPOSITORY_URI ?= $(shell printf '$(APP_REPOSITORY_URL)\n' |sed 's|.*://||;')
APP_REPOSITORY_URL ?= $(GIT_REPOSITORY)
APP_REQUIRED ?= $(APP_REPOSITORY)
APP_SCHEME ?= https
APP_SCHEME ?= http
APP_UPSTREAM_REPOSITORY ?= $(or $(shell git config --get remote.upstream.url 2>/dev/null),$(GIT_UPSTREAM_REPOSITORY))
APP_URI ?= $(patsubst %,%/$(APP_PATH),$(APP_HOST))
APP_URIS ?= $(APP_URI)
APP_URL ?= $(patsubst %,$(APP_SCHEME)://%,$(APP_URI))
APP_VERSION ?= $(VERSION)
CONTEXT += APP APPS BRANCH DOMAIN VERSION RELEASE
@@ -38,10 +37,11 @@ SERVICES ?= $(DOCKER_SERVICES)
envprefix = $(foreach env,$(3),$(if $($(call UPPERCASE,$(1)_SERVICE_$(2)_$(env))),$(env)=$($(call UPPERCASE,$(1)_SERVICE_$(2)_$(env)))))
patsublist = $(patsubst $(1),$(2),$(firstword $(3)))$(foreach pattern,$(wordlist 2,255,$(3)),$(comma)$(patsubst $(1),$(2),$(pattern)))
servicenvs = $(foreach env,$(call UPPERCASE,$($(1)_SERVICE_$(2)_ENVS)),$(if $(3),$($(1)_SERVICE_$(env)_$(3)),$($(1)_SERVICE_$(2)_$(env))))
tagprefix = $(call urlprefix,$(or $($(call UPPERCASE,$(1)_SERVICE_$(2)_PATH)),$($(call UPPERCASE,$(1)_SERVICE_PATH))),$(or $($(call UPPERCASE,$(1)_SERVICE_$(2)_OPTS)),$($(call UPPERCASE,$(1)_SERVICE_OPTS)),$(call envprefix,$(1),$(2),allow auth deny preprend proto register strip)),$(or $(foreach env,$(3),$($(call UPPERCASE,$(1)_SERVICE_$(2)_$(env)))),$($(call UPPERCASE,$(1)_SERVICE_$(2)_URIS)),$(call uriprefix,$(1),$(2))))
uriprefix = $(foreach svc,$(1),$(patsubst %,$(addsuffix .,$(or $($(call UPPERCASE,$(svc)_SERVICE_$(2)_NAME)),$($(call UPPERCASE,$(svc)_SERVICE_NAME)),$(svc)))%,$(or $(3),$(APP_URIS))))
tagprefix = $(call urlprefix,$(or $($(call UPPERCASE,$(1)_SERVICE_$(2)_PATH)),$($(call UPPERCASE,$(1)_SERVICE_PATH))),$(or $($(call UPPERCASE,$(1)_SERVICE_$(2)_OPTS)),$($(call UPPERCASE,$(1)_SERVICE_OPTS)),$(call envprefix,$(1),$(2),allow auth deny preprend proto register strip)),$(or $(foreach env,$(3),$($(call UPPERCASE,$(1)_SERVICE_$(2)_$(env)))),$($(call UPPERCASE,$(1)_SERVICE_$(2)_URIS)),$(call uri,$(1),$(2))))
uri = $(foreach svc,$(1),$(patsubst %,$(addsuffix .,$(or $($(call UPPERCASE,$(svc)_SERVICE_$(2)_NAME)),$($(call UPPERCASE,$(svc)_SERVICE_NAME)),$(svc)))%,$(or $(3),$(APP_URI))))
url = $(patsubst %,$(APP_SCHEME)://%,$(call uri,$(1),$(2),$(or $(3),$(APP_URI))))
url_suffix = *
urlprefix = $(strip $(call patsublist,%,urlprefix-%$(1)$(url_suffix) $(2),$(or $(3),$(APP_URIS))))
urlprefix = $(strip $(call patsublist,%,urlprefix-%$(1)$(url_suffix) $(2),$(or $(3),$(APP_URI))))
urlprefixs = $(strip $(call urlprefix,$(firstword $(1)),$(wordlist 2,16,$(1)))$(foreach prefix,$(subst $(space),$(dollar),$(2)) $(subst $(space),$(dollar),$(3)) $(subst $(space),$(dollar),$(4)),$(comma)$(call subst,$(dollar),$(space),$(call urlprefix,$(firstword $(prefix)),$(wordlist 2,16,$(prefix))))))
## urlprefix tests (x APP_URI)
# $(call urlprefix)
-4
View File
@@ -1,8 +1,6 @@
MAKECMDARGS += ufw ufw-docker
UFW_UPDATE ?= $(or $(SERVICE),$(DOCKER_SERVICES))
ifeq ($(SETUP_UFW),true)
# function ufw: Exec command ufw with args 1
define ufw
$(call INFO,ufw,$(1)$(comma))
@@ -18,5 +16,3 @@ define ufw-docker
$(eval DOCKER_COMPOSE_PROJECT_NAME := $(HOST_COMPOSE_PROJECT_NAME))
$(call app-exec,,$(if $(DOCKER_RUN),,$(SUDO)) ufw-docker $(1))
endef
endif
+32 -25
View File
@@ -1,9 +1,9 @@
##
# DOCKER
# target docker-build: Fire docker-images-myos, Call docker-build-% target for each DOCKER_IMAGES
# target docker-build: Fire docker-image-myos, Call docker-build-% target for each DOCKER_IMAGES
.PHONY: docker-build
docker-build: docker-images-myos
docker-build: docker-image-myos
$(foreach image,$(or $(SERVICE),$(DOCKER_IMAGES)),$(call make,docker-build-$(image)))
# target docker-build-%: Call docker-build for each Dockerfile in docker/% folder
@@ -23,10 +23,10 @@ docker-commit: stack
docker-commit-%: stack
$(foreach service,$(or $(SERVICE),$(SERVICES)),$(call docker-commit,$(service),,,$*))
# target docker-compose-build: Fire docker-images-myos, Call docker-compose build SERVICE
# target docker-compose-build: Fire docker-image-myos, Call docker-compose build SERVICE
.PHONY: docker-compose-build
docker-compose-build: DOCKER_RUN_OPTIONS += -it
docker-compose-build: docker-images-myos stack
docker-compose-build: docker-image-myos stack
$(call docker-compose,build $(DOCKER_BUILD_ARGS) $(if $(filter $(SERVICE),$(SERVICES)),$(SERVICE)))
# target docker-compose-config: Call docker-compose config
@@ -109,37 +109,38 @@ docker-compose-stop: stack
# target docker-compose-up: Fire docker-image-myos, Call docker-compose up SERVICE
.PHONY: docker-compose-up
docker-compose-up: DOCKER_RUN_OPTIONS += -it
docker-compose-up: docker-images-myos bootstrap-stack stack
docker-compose-up: docker-image-myos bootstrap-stack stack
$(call docker-compose,up $(DOCKER_COMPOSE_UP_OPTIONS) $(if $(filter $(SERVICE),$(SERVICES)),$(SERVICE)))
# target docker-images-myos: Call myos-docker-build-% target for each DOCKER_IMAGES_MYOS
.PHONY: docker-images-myos
docker-images-myos: MAKE_VARS += DOCKER_REPOSITORY STACK
docker-images-myos:
$(foreach image,$(subst $(quote),,$(DOCKER_IMAGES_MYOS)),$(call make,docker-build-$(image),$(MYOS)))
# target docker-image-myos: Call myos-docker-build-% target for each MYOS_DOCKER_IMAGES
.PHONY: docker-image-myos
docker-image-myos: MAKE_VARS += DOCKER_REPOSITORY STACK
docker-image-myos:
$(foreach image,$(subst $(quote),,$(MYOS_DOCKER_IMAGES)),$(call make,docker-build-$(image),$(MYOS)))
# target docker-images-rm: Remove docker images matching DOCKER_REPOSITORY
.PHONY: docker-images-rm
docker-images-rm:
docker images |awk '$$1 ~ /^$(subst /,\/,$(DOCKER_REPOSITORY)/)/ {print $$3}' |sort -u |while read image; do $(RUN) docker rmi -f $$image; done
# target docker-image-rm: Remove docker images matching DOCKER_REPOSITORY
.PHONY: docker-image-rm
docker-image-rm:
docker image ls |awk '$$1 ~ /^$(subst /,\/,$(DOCKER_REPOSITORY)/)/ {print $$3}' |sort -u |while read image; do $(RUN) docker rmi -f $$image; done
# target docker-images-rm-%: Remove docker images matching %
.PHONY: docker-images-rm-%
docker-images-rm-%:
docker images |awk '$$1 ~ /^$(subst /,\/,$*)/ {print $$3}' |sort -u |while read image; do $(RUN) docker rmi -f $$image; done
# target docker-image-rm-%: Remove docker images matching %
.PHONY: docker-image-rm-%
docker-image-rm-%:
$(foreach image,$(or $($(call UPPERCASE,$*)_DOCKER_IMAGES),$*), \
docker image ls |awk '$$1 ~ /^$(subst /,\/,$(firstword $(subst :, ,$(image))))/ {print $$3}' |sort -u |while read image; do $(RUN) docker rmi -f $$image; done;)
# target docker-login: Run 'docker login'
.PHONY: docker-login
docker-login: myos-user
$(RUN) docker login
# target docker-network: Fire docker-network-create-% for DOCKER_NETWORK and DOCKER_NETWORK_PUBLIC
# target docker-network: Fire docker-network-create
.PHONY: docker-network
docker-network: docker-network-create docker-network-create-$(DOCKER_NETWORK_PUBLIC)
docker-network: docker-network-create
# target docker-network-create: Fire docker-network-create-% for DOCKER_NETWORK
# target docker-network-create: Fire docker-network-create-% for DOCKER_NETWORK_PRIVATE and DOCKER_NETWORK_PUBLIC
.PHONY: docker-network-create
docker-network-create: docker-network-create-$(DOCKER_NETWORK)
docker-network-create: docker-network-create-$(DOCKER_NETWORK_PRIVATE) docker-network-create-$(DOCKER_NETWORK_PUBLIC)
# target docker-network-create-%: Run 'docker network create %'
.PHONY: docker-network-create-%
@@ -150,9 +151,9 @@ docker-network-create-%:
||: ; \
fi
# target docker-network-rm: Fire docker-network-rm-% for DOCKER_NETWORK
# target docker-network-rm: Fire docker-network-rm-% for DOCKER_NETWORK_PRIVATE and DOCKER_NETWORK_PUBLIC
.PHONY: docker-network-rm
docker-network-rm: docker-network-rm-$(DOCKER_NETWORK)
docker-network-rm: docker-network-rm-$(DOCKER_NETWORK_PRIVATE) docker-network-rm-$(DOCKER_NETWORK_PUBLIC)
# target docker-network-rm-%: Run 'docker network rm %'
.PHONY: docker-network-rm-%
@@ -226,9 +227,15 @@ docker-run-%: docker-build-%
$(eval command := $(ARGS))
$(eval path := $(patsubst %/,%,$*))
$(eval image := $(DOCKER_REPOSITORY)/$(lastword $(subst /, ,$(path)))$(if $(findstring :,$*),,:$(DOCKER_IMAGE_TAG)))
$(eval image_id := $(shell docker images -q $(image) 2>/dev/null))
$(eval image_id := $(shell docker image ls -q $(image) 2>/dev/null))
$(call docker-run,$(if $(image_id),$(image),$(path)),$(command))
# target docker-stack-%: Call docker-compose-% target for each STACK
.PHONY: docker-stack-%
docker-stack-%: MAKE_VARS += DOCKER_COMPOSE_DOWN_OPTIONS
docker-stack-%:
$(foreach stack, $(STACK), $(call make,docker-compose-$* STACK=$(stack) APP_NAME=$(subst _,,$(subst -,,$(subst .,,$(call LOWERCASE,$(firstword $(subst /, ,$(stack)))))))))
# target docker-tag: Call docker-tag for each SERVICES
.PHONY: docker-tag
docker-tag: stack
+6 -1
View File
@@ -1,8 +1,11 @@
# target ufw: Call ufw ARGS
.PHONY: ufw
ufw:
$(call ufw,$(ARGS))
ifeq ($(SETUP_UFW),true)
# target ufw-bootstrap: Eval ufw-docker app variables
ufw-bootstrap:
$(eval APP_COMPOSE_FILE :=)
@@ -33,7 +36,7 @@ ufw-install:
# target ufw-up: Start ufw-docker docker
ufw-up: DOCKER_RUN_NETWORK :=
ufw-up: DOCKER_RUN_OPTIONS := --restart always -d --cap-add NET_ADMIN -v /etc/ufw:/etc/ufw $(if wildcard /etc/default/ufw,-v /etc/default/ufw:/etc/default/ufw) --network host
ufw-up: DOCKER_RUN_OPTIONS := --restart always -d --cap-add NET_ADMIN -v /etc/ufw:/etc/ufw $(if $(wildcard /etc/default/ufw),-v /etc/default/ufw:/etc/default/ufw) --network host
ufw-up:
$(call app-up)
@@ -65,3 +68,5 @@ ufw-%:
$(call make,ufw-$(command) STACK="$(stack)") \
) \
)
endif