Files
AstroJS/mk/botanres-go.mk
T
2026-06-11 08:07:38 +08:00

55 lines
1.4 KiB
Makefile

IMAGE_NAME ?= botanjs
IMAGE_TAG ?= dev
JS_SRC_DIR ?= ./botanjs/src
GO_SRC_DIR ?= ./botanres-go
BUILDX_BUILDER ?= container-builder
BUILDINFO_FILE := internal/generated/buildinfo_gen.go
ensure-buildx:
@if ! docker buildx inspect $(BUILDX_BUILDER) >/dev/null 2>&1; then \
echo "Creating buildx builder $(BUILDX_BUILDER)..."; \
docker buildx create \
--name $(BUILDX_BUILDER) \
--driver docker-container \
--driver-opt network=host \
--bootstrap --use; \
else \
echo "Using existing buildx builder $(BUILDX_BUILDER)"; \
docker buildx use $(BUILDX_BUILDER); \
fi
.buildinfo:
@mkdir -p $(dir $(BUILDINFO_FILE))
@printf '%s\n' \
'package generated' \
'' \
'const (' \
' IMAGE_TAG = "$(IMAGE_TAG)"' \
' Timestamp = "'$$(TZ=UTC date +%Y%m%d.%H%M%S)'"' \
')' \
> $(BUILDINFO_FILE)
gen:
docker build \
-f $(GO_SRC_DIR)/dockerfiles/gen.Dockerfile \
--output type=local,dest=$(GO_SRC_DIR)/internal/generated .
build: .buildinfo ensure-buildx gen
docker build \
-f $(GO_SRC_DIR)/dockerfiles/api.Dockerfile \
--load \
-t $(IMAGE_NAME):$(IMAGE_TAG) .
push: .buildinfo ensure-buildx gen
docker buildx build \
--platform linux/amd64,linux/arm64 \
-f $(GO_SRC_DIR)/dockerfiles/api.Dockerfile \
-t $(IMAGE_NAME):$(IMAGE_TAG) \
--push .
inspect:
docker buildx imagetools inspect $(IMAGE_NAME):$(IMAGE_TAG)
.PHONY: push build .buildinfo gen