make-deploy/compose-file.mk

52 lines
1.7 KiB
Makefile

MANDATORY = $(shell printenv MANDATORY) SSH_USER DEPLOY_COMPOSE_FILE DEPLOY_COMPOSE_PROJECT
ifndef DOCKER_LOGIN
DOCKER_LOGIN = 0
endif
pull-compose-file:
@ echo "\n### pulling image(s)"
@$(foreach host,$(DEPLOY_HOSTS), \
echo "#host: $(host)"; \
if test "$(DOCKER_LOGIN)" -eq 1 ; \
then \
echo "\n#### perform docker login with user $(DOCKER_USER) on $(DOCKER_REGISTRY)"; \
ssh $(SSH_USER)@$(host) "echo $(DOCKER_PASS) | docker login -u $(DOCKER_USER) --password-stdin $(DOCKER_REGISTRY)"; \
fi; \
if test -n "$(DOCKER_IMAGE)" ; \
then \
ssh $(SSH_USER)@$(host) "docker pull $(DOCKER_IMAGE)"; \
fi; \
)
start-compose-file:
@ echo "\n### starting service(s)"
@$(foreach host,$(DEPLOY_HOSTS), \
set -e; \
echo "#host: $(host)"; \
ssh $(SSH_USER)@$(host) "cd $(DEPLOY_PATH)/$(DEPLOY_NAME); docker-compose -f $(DEPLOY_COMPOSE_FILE) -p $(DEPLOY_COMPOSE_PROJECT) up -d"; \
sleep $(DEPLOY_START_DELAY); \
set +e; \
)
stop-compose-file:
@echo "\n### stopping service(s)"
@$(foreach host,$(DEPLOY_HOSTS), \
set -e; \
echo "#host: $(host)"; \
ssh $(SSH_USER)@$(host) "cd $(DEPLOY_PATH)/$(DEPLOY_NAME); docker-compose -f $(DEPLOY_COMPOSE_FILE) -p $(DEPLOY_COMPOSE_PROJECT) down"; \
set +e; \
)
logs-compose-file:
@ echo "\n### logs"
@ ssh $(SSH_USER)@$(host) "cd $(DEPLOY_PATH)/$(DEPLOY_NAME); docker-compose -f $(DEPLOY_COMPOSE_FILE) -p $(DEPLOY_COMPOSE_PROJECT) logs -f $(service)"
restart-compose-file:
@$(foreach host,$(DEPLOY_HOSTS), \
set -e; \
echo "#host: $(host)"; \
ssh $(SSH_USER)@$(host) "cd $(DEPLOY_PATH)/$(DEPLOY_NAME); docker-compose -f $(DEPLOY_COMPOSE_FILE) -p $(DEPLOY_COMPOSE_PROJECT) restart"; \
sleep $(DEPLOY_START_DELAY); \
set +e; \
)