# ============================================================================== # BUILD (Docker images and native for Incus) # ============================================================================== .PHONY: build build-backend-api build-stream-server build-web .PHONY: build-all build-all-native build-service build: build-all ## [HIGH] Build all services (alias) build-backend-api: ## [LOW] Build Go backend Docker image @$(ECHO_CMD) "${BLUE}🔨 Building backend-api...${NC}" @docker build -t $(PROJECT_NAME)-backend-api:latest -f $(ROOT)/$(SERVICE_DIR_backend-api)/Dockerfile.production $(ROOT)/$(SERVICE_DIR_backend-api) || \ ($(ECHO_CMD) "${YELLOW}Using local Dockerfile...${NC}" && \ docker build -t $(PROJECT_NAME)-backend-api:latest -f $(ROOT)/$(SERVICE_DIR_backend-api)/Dockerfile $(ROOT)/$(SERVICE_DIR_backend-api)) build-stream-server: ## [LOW] Build Rust stream server Docker image @$(ECHO_CMD) "${BLUE}🔨 Building stream-server...${NC}" @docker build -t $(PROJECT_NAME)-stream-server:latest -f $(ROOT)/$(SERVICE_DIR_stream-server)/Dockerfile.production $(ROOT)/$(SERVICE_DIR_stream-server) || \ docker build -t $(PROJECT_NAME)-stream-server:latest -f $(ROOT)/$(SERVICE_DIR_stream-server)/Dockerfile $(ROOT)/$(SERVICE_DIR_stream-server)) build-web: ## [LOW] Build web frontend Docker image @$(ECHO_CMD) "${BLUE}🔨 Building web...${NC}" @docker build -t $(PROJECT_NAME)-web:latest -f $(ROOT)/$(SERVICE_DIR_web)/Dockerfile.production $(ROOT)/$(SERVICE_DIR_web) || \ docker build -t $(PROJECT_NAME)-web:latest -f $(ROOT)/$(SERVICE_DIR_web)/Dockerfile $(ROOT)/$(SERVICE_DIR_web)) build-all: ## [MID] Build all services (Docker images) @$(ECHO_CMD) "${BLUE}🔨 Building all services...${NC}" @$(MAKE) -s build-backend-api @$(MAKE) -s build-stream-server @$(MAKE) -s build-web @$(ECHO_CMD) "${GREEN}✅ All services built.${NC}" build-all-native: ## [MID] Build all services natively (for Incus) @$(ECHO_CMD) "${BLUE}🔨 Building all services natively...${NC}" @$(INCUS_SCRIPTS)/build-native.sh all @$(ECHO_CMD) "${GREEN}✅ All services built natively.${NC}" build-service: ## [MID] Build a specific service (usage: make build-service SERVICE=backend-api) @if [ -z "$(SERVICE)" ]; then $(ECHO_CMD) "${RED}❌ Please specify SERVICE=name${NC}"; exit 1; fi @$(ECHO_CMD) "${BLUE}🔨 Building $(SERVICE)...${NC}" @$(MAKE) -s build-$(SERVICE) @$(ECHO_CMD) "${GREEN}✅ $(SERVICE) built.${NC}"