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; \ )