feat: add container registry targets to Makefile
- Add docker-tag, docker-push, docker-pull, docker-login targets - Add registry-build and registry-push convenience targets - Add docker-clean-registry for cleanup - Integrate with CONTAINER_REGISTRY_URL and CONTAINER_TAG environment variables - Support fallback to default Gitea registry URL when .env is missing - Update status target to show registry configuration - Add dual tagging (specific tag + latest)
This commit is contained in:
80
Makefile
80
Makefile
@@ -3,6 +3,7 @@
|
||||
|
||||
.PHONY: help install install-dev clean test test-cov lint format type-check
|
||||
.PHONY: server cli demo docker-build docker-dev docker-prod docker-test
|
||||
.PHONY: docker-push docker-pull docker-tag docker-login registry-build registry-push
|
||||
.PHONY: pre-commit setup-dev deps-update deps-check security-check
|
||||
.PHONY: build package publish docs release validate-config
|
||||
|
||||
@@ -222,6 +223,60 @@ docker-build: ## Build Docker images
|
||||
docker-compose build
|
||||
$(call success,Docker images built)
|
||||
|
||||
# Container Registry targets
|
||||
docker-tag: ## Tag Docker images with registry URL
|
||||
$(call info,Tagging Docker images for registry...)
|
||||
@if [ -f ".env" ]; then \
|
||||
. ./.env && \
|
||||
docker tag unitforge:latest $${CONTAINER_REGISTRY_URL}:$${CONTAINER_TAG} && \
|
||||
docker tag unitforge:latest $${CONTAINER_REGISTRY_URL}:latest; \
|
||||
else \
|
||||
echo -e "$(YELLOW)$(WARNING_SYMBOL)$(NC) .env file not found. Using default values."; \
|
||||
docker tag unitforge:latest http://gitea-http.taildb3494.ts.net/will/unitforge:latest; \
|
||||
fi
|
||||
$(call success,Docker images tagged for registry)
|
||||
|
||||
docker-push: docker-tag ## Push Docker images to registry
|
||||
$(call info,Pushing Docker images to registry...)
|
||||
@if [ -f ".env" ]; then \
|
||||
. ./.env && \
|
||||
docker push $${CONTAINER_REGISTRY_URL}:$${CONTAINER_TAG} && \
|
||||
docker push $${CONTAINER_REGISTRY_URL}:latest; \
|
||||
else \
|
||||
echo -e "$(YELLOW)$(WARNING_SYMBOL)$(NC) .env file not found. Using default values."; \
|
||||
docker push http://gitea-http.taildb3494.ts.net/will/unitforge:latest; \
|
||||
fi
|
||||
$(call success,Docker images pushed to registry)
|
||||
|
||||
docker-pull: ## Pull Docker images from registry
|
||||
$(call info,Pulling Docker images from registry...)
|
||||
@if [ -f ".env" ]; then \
|
||||
. ./.env && \
|
||||
docker pull $${CONTAINER_REGISTRY_URL}:$${CONTAINER_TAG}; \
|
||||
else \
|
||||
echo -e "$(YELLOW)$(WARNING_SYMBOL)$(NC) .env file not found. Using default values."; \
|
||||
docker pull http://gitea-http.taildb3494.ts.net/will/unitforge:latest; \
|
||||
fi
|
||||
$(call success,Docker images pulled from registry)
|
||||
|
||||
registry-build: docker-build docker-tag ## Build and tag images for registry
|
||||
$(call success,Images built and tagged for registry)
|
||||
|
||||
registry-push: registry-build docker-push ## Build, tag, and push images to registry
|
||||
$(call success,Images built, tagged, and pushed to registry)
|
||||
|
||||
docker-login: ## Login to container registry (interactive)
|
||||
$(call info,Logging into container registry...)
|
||||
@if [ -f ".env" ]; then \
|
||||
. ./.env && \
|
||||
echo "Logging into registry at: $${CONTAINER_REGISTRY_URL}"; \
|
||||
docker login $${CONTAINER_REGISTRY_URL}; \
|
||||
else \
|
||||
echo -e "$(YELLOW)$(WARNING_SYMBOL)$(NC) .env file not found. Using default values."; \
|
||||
docker login http://gitea-http.taildb3494.ts.net; \
|
||||
fi
|
||||
$(call success,Logged into container registry)
|
||||
|
||||
docker-build-legacy: ## Build Docker images with legacy builder (networking issues workaround)
|
||||
$(call info,Building Docker images with legacy builder...)
|
||||
DOCKER_BUILDKIT=0 docker-compose build
|
||||
@@ -278,6 +333,17 @@ docker-clean-legacy: ## Clean Docker containers and images
|
||||
docker system prune -f
|
||||
$(call success,Docker cleanup complete)
|
||||
|
||||
docker-clean-registry: ## Remove locally cached registry images
|
||||
$(call info,Cleaning registry images from local cache...)
|
||||
@if [ -f ".env" ]; then \
|
||||
. ./.env && \
|
||||
docker rmi $${CONTAINER_REGISTRY_URL}:$${CONTAINER_TAG} 2>/dev/null || true && \
|
||||
docker rmi $${CONTAINER_REGISTRY_URL}:latest 2>/dev/null || true; \
|
||||
else \
|
||||
docker rmi http://gitea-http.taildb3494.ts.net/will/unitforge:latest 2>/dev/null || true; \
|
||||
fi
|
||||
$(call success,Registry images cleaned from local cache)
|
||||
|
||||
# Package and release targets
|
||||
build: clean ## Build package
|
||||
$(call info,Building package...)
|
||||
@@ -367,6 +433,20 @@ status: ## Show project status
|
||||
else \
|
||||
echo " ✗ uv package manager not found - REQUIRED"; \
|
||||
fi
|
||||
@if command -v docker >/dev/null 2>&1; then \
|
||||
echo " ✓ Docker available"; \
|
||||
else \
|
||||
echo " ✗ Docker not found"; \
|
||||
fi
|
||||
@echo ""
|
||||
@echo -e "$(YELLOW)Container Registry:$(NC)"
|
||||
@if [ -f ".env" ]; then \
|
||||
. ./.env && \
|
||||
echo " ✓ Registry URL: $${CONTAINER_REGISTRY_URL}"; \
|
||||
echo " ✓ Container Tag: $${CONTAINER_TAG}"; \
|
||||
else \
|
||||
echo " ⚠ .env file not found - using defaults"; \
|
||||
fi
|
||||
@echo ""
|
||||
@echo -e "$(YELLOW)Project Files:$(NC)"
|
||||
@if [ -f "pyproject.toml" ]; then echo " ✓ pyproject.toml"; else echo " ✗ pyproject.toml"; fi
|
||||
|
||||
Reference in New Issue
Block a user