IMAGE_NAME ?= rogeecn/weixin-guahao IMAGE_TAG ?= latest IMAGE ?= $(IMAGE_NAME):$(IMAGE_TAG) DEPLOY_HOST ?= server.gaozong.ali DEPLOY_DIR ?= dist DEPLOY_ARCHIVE ?= $(DEPLOY_DIR)/$(subst /,_,$(IMAGE_NAME))-$(IMAGE_TAG).tar.gz DEPLOY_REMOTE_ARCHIVE ?= /tmp/$(notdir $(DEPLOY_ARCHIVE)) DOCKERFILE ?= backend/Dockerfile BUILD_CONTEXT ?= backend PLATFORM ?= linux/amd64 DOCKER_REGISTRY ?= docker.m.daocloud.io ALPINE_MIRROR ?= mirrors.aliyun.com GOPROXY ?= https://goproxy.cn,direct GOSUMDB ?= sum.golang.google.cn .PHONY: docker-build docker-push docker-release deploy compose-up compose-down docker-build: docker build \ --platform $(PLATFORM) \ --build-arg DOCKER_REGISTRY=$(DOCKER_REGISTRY) \ --build-arg ALPINE_MIRROR=$(ALPINE_MIRROR) \ --build-arg GOPROXY=$(GOPROXY) \ --build-arg GOSUMDB=$(GOSUMDB) \ -t $(IMAGE) \ -f $(DOCKERFILE) \ $(BUILD_CONTEXT) docker-push: docker push $(IMAGE) docker-release: docker-build docker-push deploy: docker-build mkdir -p $(DEPLOY_DIR) docker save $(IMAGE) | gzip > $(DEPLOY_ARCHIVE) scp $(DEPLOY_ARCHIVE) $(DEPLOY_HOST):$(DEPLOY_REMOTE_ARCHIVE) ssh $(DEPLOY_HOST) 'docker load -i $(DEPLOY_REMOTE_ARCHIVE) && rm -f $(DEPLOY_REMOTE_ARCHIVE)' compose-up: docker compose up -d compose-down: docker compose down