Some checks failed
Build and Push Development Images / build-base (push) Has been cancelled
Build and Push Development Images / build-rust (push) Has been cancelled
Build and Push Development Images / build-go (push) Has been cancelled
Build and Push Development Images / build-python (push) Has been cancelled
Build and Push Development Images / build-node (push) Has been cancelled
Build and Push Development Images / build-java (push) Has been cancelled
Build and Push Development Images / build-cpp (push) Has been cancelled
Build and Push Development Images / test-images (base) (push) Has been cancelled
Build and Push Development Images / test-images (cpp-dev) (push) Has been cancelled
Build and Push Development Images / test-images (go-dev) (push) Has been cancelled
Build and Push Development Images / test-images (java-dev) (push) Has been cancelled
Build and Push Development Images / test-images (node-dev) (push) Has been cancelled
Build and Push Development Images / test-images (python-dev) (push) Has been cancelled
Build and Push Development Images / test-images (rust-dev) (push) Has been cancelled
This commit establishes the foundation for language-specific development
container images used by CHORUS autonomous agents.
Features:
- Multi-stage Dockerfile with 7 layered images
- Base Debian Bookworm image with common tools
- Language-specific images: Rust, Go, Python, Node.js, Java, C/C++
- Standardized /workspace/{input,data,output} structure
- Automated CI/CD pipeline for weekly security updates
- Comprehensive test suite for all images
- Full documentation (README, USAGE, MAINTENANCE)
Images available:
- chorus/base:1.0.0 (~200MB)
- chorus/rust-dev:1.0.0 (~1.2GB)
- chorus/go-dev:1.0.0 (~600MB)
- chorus/python-dev:1.0.0 (~800MB)
- chorus/node-dev:1.0.0 (~700MB)
- chorus/java-dev:1.0.0 (~1.5GB)
- chorus/cpp-dev:1.0.0 (~900MB)
🤖 Generated with Claude Code (https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
191 lines
7.0 KiB
Makefile
191 lines
7.0 KiB
Makefile
# CHORUS Development Images Build System
|
|
# ========================================
|
|
|
|
.PHONY: help build-all build-base build-rust build-go build-python build-node build-java build-cpp \
|
|
test-all test-base test-rust test-go test-python test-node test-java test-cpp \
|
|
push-all clean version
|
|
|
|
REGISTRY ?= registry.home.deepblack.cloud
|
|
IMAGE_PREFIX := chorus
|
|
VERSION := $(shell cat VERSION)
|
|
|
|
# Colors for output
|
|
BLUE := \033[0;34m
|
|
GREEN := \033[0;32m
|
|
YELLOW := \033[0;33m
|
|
NC := \033[0m # No Color
|
|
|
|
help:
|
|
@echo "$(BLUE)CHORUS Development Images Build System$(NC)"
|
|
@echo ""
|
|
@echo "$(GREEN)Build Targets:$(NC)"
|
|
@echo " build-all Build all images (base + 6 language images)"
|
|
@echo " build-base Build base image only"
|
|
@echo " build-rust Build Rust development image"
|
|
@echo " build-go Build Go development image"
|
|
@echo " build-python Build Python development image"
|
|
@echo " build-node Build Node.js development image"
|
|
@echo " build-java Build Java development image"
|
|
@echo " build-cpp Build C/C++ development image"
|
|
@echo ""
|
|
@echo "$(GREEN)Test Targets:$(NC)"
|
|
@echo " test-all Test all images"
|
|
@echo " test-base Test base image"
|
|
@echo " test-rust Test Rust image"
|
|
@echo " test-go Test Go image"
|
|
@echo " test-python Test Python image"
|
|
@echo " test-node Test Node.js image"
|
|
@echo " test-java Test Java image"
|
|
@echo " test-cpp Test C/C++ image"
|
|
@echo ""
|
|
@echo "$(GREEN)Registry Targets:$(NC)"
|
|
@echo " push-all Push all images to registry"
|
|
@echo " clean Remove local images"
|
|
@echo ""
|
|
@echo "$(YELLOW)Configuration:$(NC)"
|
|
@echo " Registry: $(REGISTRY)"
|
|
@echo " Image prefix: $(IMAGE_PREFIX)"
|
|
@echo " Version: $(VERSION)"
|
|
|
|
build-all: build-base build-rust build-go build-python build-node build-java build-cpp
|
|
@echo "$(GREEN)✅ All images built successfully$(NC)"
|
|
|
|
build-base:
|
|
@echo "$(BLUE)Building base image...$(NC)"
|
|
docker build \
|
|
--target base \
|
|
-t $(REGISTRY)/$(IMAGE_PREFIX)/base:latest \
|
|
-t $(REGISTRY)/$(IMAGE_PREFIX)/base:$(VERSION) \
|
|
-f images/base/Dockerfile \
|
|
images/base
|
|
@echo "$(GREEN)✅ Base image built$(NC)"
|
|
|
|
build-rust: build-base
|
|
@echo "$(BLUE)Building Rust development image...$(NC)"
|
|
docker build \
|
|
--target rust-dev \
|
|
-t $(REGISTRY)/$(IMAGE_PREFIX)/rust-dev:latest \
|
|
-t $(REGISTRY)/$(IMAGE_PREFIX)/rust-dev:$(VERSION) \
|
|
-f images/base/Dockerfile \
|
|
images/base
|
|
@echo "$(GREEN)✅ Rust image built$(NC)"
|
|
|
|
build-go: build-base
|
|
@echo "$(BLUE)Building Go development image...$(NC)"
|
|
docker build \
|
|
--target go-dev \
|
|
-t $(REGISTRY)/$(IMAGE_PREFIX)/go-dev:latest \
|
|
-t $(REGISTRY)/$(IMAGE_PREFIX)/go-dev:$(VERSION) \
|
|
-f images/base/Dockerfile \
|
|
images/base
|
|
@echo "$(GREEN)✅ Go image built$(NC)"
|
|
|
|
build-python: build-base
|
|
@echo "$(BLUE)Building Python development image...$(NC)"
|
|
docker build \
|
|
--target python-dev \
|
|
-t $(REGISTRY)/$(IMAGE_PREFIX)/python-dev:latest \
|
|
-t $(REGISTRY)/$(IMAGE_PREFIX)/python-dev:$(VERSION) \
|
|
-f images/base/Dockerfile \
|
|
images/base
|
|
@echo "$(GREEN)✅ Python image built$(NC)"
|
|
|
|
build-node: build-base
|
|
@echo "$(BLUE)Building Node.js development image...$(NC)"
|
|
docker build \
|
|
--target node-dev \
|
|
-t $(REGISTRY)/$(IMAGE_PREFIX)/node-dev:latest \
|
|
-t $(REGISTRY)/$(IMAGE_PREFIX)/node-dev:$(VERSION) \
|
|
-f images/base/Dockerfile \
|
|
images/base
|
|
@echo "$(GREEN)✅ Node.js image built$(NC)"
|
|
|
|
build-java: build-base
|
|
@echo "$(BLUE)Building Java development image...$(NC)"
|
|
docker build \
|
|
--target java-dev \
|
|
-t $(REGISTRY)/$(IMAGE_PREFIX)/java-dev:latest \
|
|
-t $(REGISTRY)/$(IMAGE_PREFIX)/java-dev:$(VERSION) \
|
|
-f images/base/Dockerfile \
|
|
images/base
|
|
@echo "$(GREEN)✅ Java image built$(NC)"
|
|
|
|
build-cpp: build-base
|
|
@echo "$(BLUE)Building C/C++ development image...$(NC)"
|
|
docker build \
|
|
--target cpp-dev \
|
|
-t $(REGISTRY)/$(IMAGE_PREFIX)/cpp-dev:latest \
|
|
-t $(REGISTRY)/$(IMAGE_PREFIX)/cpp-dev:$(VERSION) \
|
|
-f images/base/Dockerfile \
|
|
images/base
|
|
@echo "$(GREEN)✅ C/C++ image built$(NC)"
|
|
|
|
test-all: test-base test-rust test-go test-python test-node test-java test-cpp
|
|
@echo "$(GREEN)✅ All tests passed$(NC)"
|
|
|
|
test-base:
|
|
@chmod +x tests/test-base.sh
|
|
@REGISTRY=$(REGISTRY)/$(IMAGE_PREFIX) bash tests/test-base.sh
|
|
|
|
test-rust:
|
|
@chmod +x tests/test-rust-dev.sh
|
|
@REGISTRY=$(REGISTRY)/$(IMAGE_PREFIX) bash tests/test-rust-dev.sh
|
|
|
|
test-go:
|
|
@chmod +x tests/test-go-dev.sh
|
|
@REGISTRY=$(REGISTRY)/$(IMAGE_PREFIX) bash tests/test-go-dev.sh
|
|
|
|
test-python:
|
|
@chmod +x tests/test-python-dev.sh
|
|
@REGISTRY=$(REGISTRY)/$(IMAGE_PREFIX) bash tests/test-python-dev.sh
|
|
|
|
test-node:
|
|
@chmod +x tests/test-node-dev.sh
|
|
@REGISTRY=$(REGISTRY)/$(IMAGE_PREFIX) bash tests/test-node-dev.sh
|
|
|
|
test-java:
|
|
@chmod +x tests/test-java-dev.sh
|
|
@REGISTRY=$(REGISTRY)/$(IMAGE_PREFIX) bash tests/test-java-dev.sh
|
|
|
|
test-cpp:
|
|
@chmod +x tests/test-cpp-dev.sh
|
|
@REGISTRY=$(REGISTRY)/$(IMAGE_PREFIX) bash tests/test-cpp-dev.sh
|
|
|
|
push-all: build-all test-all
|
|
@echo "$(BLUE)Pushing all images to registry...$(NC)"
|
|
docker push $(REGISTRY)/$(IMAGE_PREFIX)/base:latest
|
|
docker push $(REGISTRY)/$(IMAGE_PREFIX)/base:$(VERSION)
|
|
docker push $(REGISTRY)/$(IMAGE_PREFIX)/rust-dev:latest
|
|
docker push $(REGISTRY)/$(IMAGE_PREFIX)/rust-dev:$(VERSION)
|
|
docker push $(REGISTRY)/$(IMAGE_PREFIX)/go-dev:latest
|
|
docker push $(REGISTRY)/$(IMAGE_PREFIX)/go-dev:$(VERSION)
|
|
docker push $(REGISTRY)/$(IMAGE_PREFIX)/python-dev:latest
|
|
docker push $(REGISTRY)/$(IMAGE_PREFIX)/python-dev:$(VERSION)
|
|
docker push $(REGISTRY)/$(IMAGE_PREFIX)/node-dev:latest
|
|
docker push $(REGISTRY)/$(IMAGE_PREFIX)/node-dev:$(VERSION)
|
|
docker push $(REGISTRY)/$(IMAGE_PREFIX)/java-dev:latest
|
|
docker push $(REGISTRY)/$(IMAGE_PREFIX)/java-dev:$(VERSION)
|
|
docker push $(REGISTRY)/$(IMAGE_PREFIX)/cpp-dev:latest
|
|
docker push $(REGISTRY)/$(IMAGE_PREFIX)/cpp-dev:$(VERSION)
|
|
@echo "$(GREEN)✅ All images pushed to registry$(NC)"
|
|
|
|
clean:
|
|
@echo "$(YELLOW)Removing local images...$(NC)"
|
|
-docker rmi $(REGISTRY)/$(IMAGE_PREFIX)/base:latest 2>/dev/null || true
|
|
-docker rmi $(REGISTRY)/$(IMAGE_PREFIX)/base:$(VERSION) 2>/dev/null || true
|
|
-docker rmi $(REGISTRY)/$(IMAGE_PREFIX)/rust-dev:latest 2>/dev/null || true
|
|
-docker rmi $(REGISTRY)/$(IMAGE_PREFIX)/rust-dev:$(VERSION) 2>/dev/null || true
|
|
-docker rmi $(REGISTRY)/$(IMAGE_PREFIX)/go-dev:latest 2>/dev/null || true
|
|
-docker rmi $(REGISTRY)/$(IMAGE_PREFIX)/go-dev:$(VERSION) 2>/dev/null || true
|
|
-docker rmi $(REGISTRY)/$(IMAGE_PREFIX)/python-dev:latest 2>/dev/null || true
|
|
-docker rmi $(REGISTRY)/$(IMAGE_PREFIX)/python-dev:$(VERSION) 2>/dev/null || true
|
|
-docker rmi $(REGISTRY)/$(IMAGE_PREFIX)/node-dev:latest 2>/dev/null || true
|
|
-docker rmi $(REGISTRY)/$(IMAGE_PREFIX)/node-dev:$(VERSION) 2>/dev/null || true
|
|
-docker rmi $(REGISTRY)/$(IMAGE_PREFIX)/java-dev:latest 2>/dev/null || true
|
|
-docker rmi $(REGISTRY)/$(IMAGE_PREFIX)/java-dev:$(VERSION) 2>/dev/null || true
|
|
-docker rmi $(REGISTRY)/$(IMAGE_PREFIX)/cpp-dev:latest 2>/dev/null || true
|
|
-docker rmi $(REGISTRY)/$(IMAGE_PREFIX)/cpp-dev:$(VERSION) 2>/dev/null || true
|
|
@echo "$(GREEN)✅ Local images removed$(NC)"
|
|
|
|
version:
|
|
@echo "$(VERSION)"
|