.PHONY: dev dev-web build build-go build-web run test tidy clean docker-build docker-push-prebuilt export GOPROXY ?= https://goproxy.cn,direct export GOSUMDB ?= sum.golang.google.cn export IMAGE_PREFIX ?= docker.1panel.live/library/ export APK_MIRROR ?= mirrors.aliyun.com export DOCKER_PLATFORM ?= linux/amd64 export APP_IMAGE ?= atlas:latest dev: @echo "Run backend and frontend in separate terminals:" @echo " make run" @echo " make dev-web" dev-web: cd web && npm install && npm run dev build-web: cd web && npm install && npm run build rm -rf internal/api/static/* cp -r web/dist/* internal/api/static/ build: build-web go build -o dist/app ./cmd/app build-go: go build -o dist/app ./cmd/app run: go run ./cmd/app tidy: go mod tidy test: go test ./... clean: rm -rf dist web/dist internal/api/static .docker-bin @echo 'AtlasAtlas' > internal/api/static/index.html docker-build: docker buildx build --platform $(DOCKER_PLATFORM) \ -t $(APP_IMAGE) \ --build-arg IMAGE_PREFIX=$(IMAGE_PREFIX) \ --build-arg APK_MIRROR=$(APK_MIRROR) \ --build-arg GOPROXY=$(GOPROXY) \ --build-arg GOSUMDB=$(GOSUMDB) \ --load \ . # 本地交叉编译 + 仅打 runtime 镜像,避免 Docker 内 go build(最快,与 Luminary 一致) docker-push-prebuilt: build-web mkdir -p .docker-bin GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o .docker-bin/app ./cmd/app docker buildx build --platform $(DOCKER_PLATFORM) \ -f docker/Dockerfile.prebuilt \ -t $(APP_IMAGE) \ --build-arg IMAGE_PREFIX=$(IMAGE_PREFIX) \ --build-arg APK_MIRROR=$(APK_MIRROR) \ --load \ .