48 lines
1.2 KiB
Makefile
48 lines
1.2 KiB
Makefile
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
|