fix make node-exec

This commit is contained in:
Yann Autissier 2022-09-21 13:15:08 +02:00
parent be8cdb0870
commit 7eb022327c
9 changed files with 27 additions and 21 deletions

View File

@ -6,7 +6,7 @@
.PHONY: build-env
build-env: SERVICE ?= $(DOCKER_SERVICE)
build-env: bootstrap
$(call docker-compose-exec,$(SERVICE), \
$(call docker-compose-exec-sh,$(SERVICE), \
rm -f .env \
&& make .env ENV=$(ENV) \
&& printf 'BUILD=true\n' >> .env \
@ -26,7 +26,7 @@ build-init:
.PHONY: build-shared
build-shared: SERVICE ?= $(DOCKER_SERVICE)
build-shared: bootstrap
$(call docker-compose-exec,$(SERVICE), \
$(call docker-compose-exec-sh,$(SERVICE), \
mkdir -p /$(notdir $(SHARED)) \
&& $(foreach folder,$(SHARED_FOLDERS), \
rm -rf $(folder) \

View File

@ -1,4 +1,4 @@
CMDS += docker-compose-exec docker-run docker-run-%
CMDS += docker-run docker-run-%
COMPOSE_ARGS ?= --ansi auto
COMPOSE_FILE ?= $(wildcard docker/docker-compose.yml $(foreach file,$(patsubst docker/docker-compose.%,%,$(basename $(wildcard docker/docker-compose.*.yml))),$(if $(filter true,$(COMPOSE_FILE_$(file)) $(COMPOSE_FILE_$(call UPPERCASE,$(file)))),docker/docker-compose.$(file).yml)))
COMPOSE_FILE_$(ENV) ?= true
@ -63,9 +63,9 @@ define docker-compose
$(if $(DOCKER_RUN),$(call docker-build,$(MYOS)/docker/compose,docker/compose:$(COMPOSE_VERSION)))
$(if $(COMPOSE_FILE),$(call run,$(DOCKER_COMPOSE) $(patsubst %,-f %,$(COMPOSE_FILE)) -p $(if $(filter node,$(firstword $(subst /, ,$(STACK)))),$(NODE_COMPOSE_PROJECT_NAME),$(if $(filter User,$(firstword $(subst /, ,$(STACK)))),$(USER_COMPOSE_PROJECT_NAME),$(COMPOSE_PROJECT_NAME))) $(1)))
endef
# function docker-compose-exec: Run docker-compose-exec with arg 2 in service 1
define docker-compose-exec
$(call INFO,docker-compose-exec,$(1)$(comma) $(2))
# function docker-compose-exec-sh: Run docker-compose-exec sh -c 'arg 2' in service 1
define docker-compose-exec-sh
$(call INFO,docker-compose-exec-sh,$(1)$(comma) $(2))
$(if $(DOCKER_RUN),$(call docker-build,$(MYOS)/docker/compose,docker/compose:$(COMPOSE_VERSION)))
$(if $(COMPOSE_FILE),$(call run,$(DOCKER_COMPOSE) $(patsubst %,-f %,$(COMPOSE_FILE)) -p $(if $(filter node,$(firstword $(subst /, ,$(STACK)))),$(NODE_COMPOSE_PROJECT_NAME),$(if $(filter User,$(firstword $(subst /, ,$(STACK)))),$(USER_COMPOSE_PROJECT_NAME),$(COMPOSE_PROJECT_NAME))) exec -T $(1) sh -c '$(2)'))
endef

View File

@ -52,7 +52,7 @@ docker-compose-down:
.PHONY: docker-compose-exec
docker-compose-exec: SERVICE ?= $(DOCKER_SERVICE)
docker-compose-exec:
$(call docker-compose-exec,$(SERVICE),$(ARGS)) || true
$(call docker-compose-exec-sh,$(SERVICE),$(ARGS)) || true
# target docker-compose-logs: Call docker-compose logs SERVICE
.PHONY: docker-compose-logs

View File

@ -317,11 +317,3 @@ $(foreach env,$(ENV_LIST),$(eval TARGET := %\:$(env)) $(eval ASSIGN_ENV := ENV:=
# set ENV=env for targets ending with @env
$(foreach env,$(ENV_LIST),$(eval %@$(env): ENV:=$(env)))
# Accept arguments for CMDS targets and turn them into do-nothing targets
ifneq ($(filter $(CMDS),$(firstword $(MAKECMDGOALS))),)
ARGS := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS))
ARGS := $(subst :,\:,$(ARGS))
ARGS := $(subst &,\&,$(ARGS))
$(eval $(ARGS):;@:)
endif

7
make/end.mk Normal file
View File

@ -0,0 +1,7 @@
# Accept arguments for CMDS targets and turn them into do-nothing targets
ifneq ($(filter $(CMDS),$(firstword $(MAKECMDGOALS))),)
ARGS := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS))
ARGS := $(subst :,\:,$(ARGS))
ARGS := $(subst &,\&,$(ARGS))
$(eval $(ARGS):;@:)
endif

View File

@ -5,17 +5,21 @@
MAKE_DIR := $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST))))
# variable MAKE_FILE: Name of this file
MAKE_FILE := $(notdir $(lastword $(MAKEFILE_LIST)))
# variable MAKE_FILES: List of first files to load
MAKE_FILES := env.mk def.mk $(wildcard def.*.mk)
## it includes $(MAKE_DIR)/$(MAKE_FILES)
include $(wildcard $(patsubst %,$(MAKE_DIR)/%,$(MAKE_FILES)))
# variable MAKE_FIRST: List of first files to load
MAKE_FIRST := env.mk def.mk $(wildcard def.*.mk)
# variable MAKE_LATEST: List of latest files to load
MAKE_LATEST := end.mk
## it includes $(MAKE_DIR)/$(MAKE_FIRST)
include $(wildcard $(patsubst %,$(MAKE_DIR)/%,$(MAKE_FIRST)))
## it includes $(MAKE_DIR)/*/def.mk $(MAKE_DIR)/*/def.*.mk
include $(foreach subdir,$(MAKE_SUBDIRS),$(wildcard $(MAKE_DIR)/$(subdir)/def.mk $(MAKE_DIR)/$(subdir)/def.*.mk))
## it includes def.mk def.*.mk */def.mk */def.*.mk
include $(wildcard def.mk def.*.mk) $(filter-out $(wildcard $(MAKE_DIR)/*.mk),$(wildcard */def.mk */def.*.mk))
## it includes $(MAKE_DIR)/*.mk
include $(filter-out $(wildcard $(patsubst %,$(MAKE_DIR)/%,$(MAKE_FILE) $(MAKE_FILES))),$(wildcard $(MAKE_DIR)/*.mk))
include $(filter-out $(wildcard $(patsubst %,$(MAKE_DIR)/%,$(MAKE_FILE) $(MAKE_FIRST) $(MAKE_LATEST))),$(wildcard $(MAKE_DIR)/*.mk))
## it includes $(MAKE_DIR)/*/*.mk
include $(foreach subdir,$(MAKE_SUBDIRS),$(filter-out $(wildcard $(MAKE_DIR)/$(subdir)/def.mk $(MAKE_DIR)/$(subdir)/def.*.mk),$(wildcard $(MAKE_DIR)/$(subdir)/*.mk)))
## it includes *.mk */*.mk
include $(filter-out $(wildcard def.mk def.*.mk),$(wildcard *.mk)) $(filter-out $(wildcard $(MAKE_DIR)/*.mk */def.mk */def.*.mk),$(wildcard */*.mk))
## it includes $(MAKE_DIR)/$(MAKE_LATEST)
include $(wildcard $(patsubst %,$(MAKE_DIR)/%,$(MAKE_LATEST)))

View File

@ -1,3 +1,4 @@
CMDS += user-exec user-exec:% user-exec@% user-run user-run:% user-run@%
User ?= User/User
# target bootstrap-stack-User: Fire docker-network-create

View File

@ -3,4 +3,4 @@ logs ?= sematext/logagent
# target app-build-logagent: Exec 'rm -Rf /root/.npm /log-buffer/*' in docker SERVICE
.PHONY: app-build-logagent
app-build-logagent:
$(call make,docker-compose-exec ARGS='rm -Rf /root/.npm /log-buffer/*' SERVICE=logagent)
$(call docker-compose-exec-sh,logagent,rm -Rf /root/.npm /log-buffer/*)

View File

@ -1,3 +1,4 @@
CMDS += node-exec stack-node-exec node-exec:% node-exec@% node-run node-run:% node-run@%
node ?= node/node
ENV_VARS += DOCKER_HOST_IFACE DOCKER_HOST_INET4 DOCKER_INTERNAL_DOCKER_HOST
@ -10,6 +11,7 @@ bootstrap-stack-node: docker-network-create-$(DOCKER_NETWORK_PUBLIC) node-ssl-ce
node: stack-node-up
# target node-%; Fire target stack-node-%
.PHONY: node-%
node-%: stack-node-%;
# target node-ssl-certs: Create ${DOMAIN}.key.pem and ${DOMAIN}.crt.pem files