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: 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: 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: pre-commit setup-dev deps-update deps-check security-check
|
||||||
.PHONY: build package publish docs release validate-config
|
.PHONY: build package publish docs release validate-config
|
||||||
|
|
||||||
@@ -222,6 +223,60 @@ docker-build: ## Build Docker images
|
|||||||
docker-compose build
|
docker-compose build
|
||||||
$(call success,Docker images built)
|
$(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)
|
docker-build-legacy: ## Build Docker images with legacy builder (networking issues workaround)
|
||||||
$(call info,Building Docker images with legacy builder...)
|
$(call info,Building Docker images with legacy builder...)
|
||||||
DOCKER_BUILDKIT=0 docker-compose build
|
DOCKER_BUILDKIT=0 docker-compose build
|
||||||
@@ -278,6 +333,17 @@ docker-clean-legacy: ## Clean Docker containers and images
|
|||||||
docker system prune -f
|
docker system prune -f
|
||||||
$(call success,Docker cleanup complete)
|
$(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
|
# Package and release targets
|
||||||
build: clean ## Build package
|
build: clean ## Build package
|
||||||
$(call info,Building package...)
|
$(call info,Building package...)
|
||||||
@@ -367,6 +433,20 @@ status: ## Show project status
|
|||||||
else \
|
else \
|
||||||
echo " ✗ uv package manager not found - REQUIRED"; \
|
echo " ✗ uv package manager not found - REQUIRED"; \
|
||||||
fi
|
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 ""
|
||||||
@echo -e "$(YELLOW)Project Files:$(NC)"
|
@echo -e "$(YELLOW)Project Files:$(NC)"
|
||||||
@if [ -f "pyproject.toml" ]; then echo " ✓ pyproject.toml"; else echo " ✗ pyproject.toml"; fi
|
@if [ -f "pyproject.toml" ]; then echo " ✓ pyproject.toml"; else echo " ✗ pyproject.toml"; fi
|
||||||
|
|||||||
Reference in New Issue
Block a user