fix: resolve .env file parsing issues in Makefile

- Replace shell sourcing with grep/cut parsing to avoid JSON array interpretation
- Strip http:// prefix from registry URLs for Docker commands
- Fix docker-tag to use correct image name (unitforge-unitforge-prod)
- All make commands now work without shell parsing errors
This commit is contained in:
William Valentin
2025-09-14 19:43:00 -07:00
parent 4132399533
commit 62a189ef98
2 changed files with 23 additions and 17 deletions

1
.rules
View File

@@ -4,6 +4,7 @@ PRODUCTION: false
COMPATIBILITY: none
PRINCIPLE: keep_small_simple
RULE: default_shell_fish
RULE: fix_lint_errors
RULE: keep_code_lean
RULE: keep_tests_consistent

View File

@@ -227,21 +227,23 @@ docker-build: ## Build Docker images
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; \
REGISTRY_URL=$$(grep '^CONTAINER_REGISTRY_URL=' .env | cut -d'=' -f2 | sed 's|^https\?://||') && \
CONTAINER_TAG=$$(grep '^CONTAINER_TAG=' .env | cut -d'=' -f2) && \
docker tag unitforge-unitforge-prod:latest $${REGISTRY_URL}:$${CONTAINER_TAG} && \
docker tag unitforge-unitforge-prod:latest $${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; \
docker tag unitforge-unitforge-prod: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; \
REGISTRY_URL=$$(grep '^CONTAINER_REGISTRY_URL=' .env | cut -d'=' -f2 | sed 's|^https\?://||') && \
CONTAINER_TAG=$$(grep '^CONTAINER_TAG=' .env | cut -d'=' -f2) && \
docker push $${REGISTRY_URL}:$${CONTAINER_TAG} && \
docker push $${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; \
@@ -251,8 +253,9 @@ docker-push: docker-tag ## Push Docker images 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}; \
REGISTRY_URL=$$(grep '^CONTAINER_REGISTRY_URL=' .env | cut -d'=' -f2 | sed 's|^https\?://||') && \
CONTAINER_TAG=$$(grep '^CONTAINER_TAG=' .env | cut -d'=' -f2) && \
docker pull $${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; \
@@ -268,9 +271,9 @@ registry-push: registry-build docker-push ## Build, tag, and push images to regi
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}; \
REGISTRY_URL=$$(grep '^CONTAINER_REGISTRY_URL=' .env | cut -d'=' -f2 | sed 's|^https\?://||') && \
echo "Logging into registry at: $${REGISTRY_URL}"; \
docker login $${REGISTRY_URL}; \
else \
echo -e "$(YELLOW)$(WARNING_SYMBOL)$(NC) .env file not found. Using default values."; \
docker login http://gitea-http.taildb3494.ts.net; \
@@ -314,9 +317,10 @@ docker-clean: ## Clean up Docker containers and volumes
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; \
REGISTRY_URL=$$(grep '^CONTAINER_REGISTRY_URL=' .env | cut -d'=' -f2 | sed 's|^https\?://||') && \
CONTAINER_TAG=$$(grep '^CONTAINER_TAG=' .env | cut -d'=' -f2) && \
docker rmi $${REGISTRY_URL}:$${CONTAINER_TAG} 2>/dev/null || true && \
docker rmi $${REGISTRY_URL}:latest 2>/dev/null || true; \
else \
docker rmi http://gitea-http.taildb3494.ts.net/will/unitforge:latest 2>/dev/null || true; \
fi
@@ -419,8 +423,9 @@ status: ## Show project status
@echo ""
@echo -e "$(YELLOW)Container Registry:$(NC)"
@if [ -f ".env" ]; then \
. ./.env && \
echo " ✓ Registry URL: $${CONTAINER_REGISTRY_URL}"; \
REGISTRY_URL=$$(grep '^CONTAINER_REGISTRY_URL=' .env | cut -d'=' -f2) && \
CONTAINER_TAG=$$(grep '^CONTAINER_TAG=' .env | cut -d'=' -f2) && \
echo " ✓ Registry URL: $${REGISTRY_URL}"; \
echo " ✓ Container Tag: $${CONTAINER_TAG}"; \
else \
echo " ⚠ .env file not found - using defaults"; \