mirror of
https://github.com/selfhosters-cc/container-census.git
synced 2026-01-13 17:59:36 -06:00
86 lines
3.0 KiB
Makefile
86 lines
3.0 KiB
Makefile
.PHONY: build-agent run-agent build-agent-docker clean help
|
|
|
|
# Detect Docker socket GID
|
|
DOCKER_GID := $(shell stat -c '%g' /var/run/docker.sock 2>/dev/null || echo 999)
|
|
|
|
# Build the agent binary
|
|
build-agent:
|
|
@echo "Building Census Agent..."
|
|
CGO_ENABLED=0 GOOS=linux go build -ldflags="-w -s" -o bin/census-agent ./cmd/agent
|
|
@echo "Agent built successfully: bin/census-agent"
|
|
|
|
# Build agent Docker image with correct GID
|
|
build-agent-docker:
|
|
@echo "Building Census Agent Docker image..."
|
|
@echo "Detected Docker socket GID: $(DOCKER_GID)"
|
|
docker build -f Dockerfile.agent --build-arg DOCKER_GID=$(DOCKER_GID) -t census-agent:latest .
|
|
@echo "Docker image built: census-agent:latest"
|
|
|
|
# Run the agent (binary)
|
|
run-agent:
|
|
@echo "Starting Census Agent on port 9876..."
|
|
@if [ ! -f bin/census-agent ]; then $(MAKE) build-agent; fi
|
|
./bin/census-agent --port=9876
|
|
|
|
# Run agent in Docker
|
|
run-agent-docker:
|
|
@echo "Starting Census Agent in Docker..."
|
|
@if ! docker images | grep -q census-agent; then $(MAKE) build-agent-docker; fi
|
|
docker run -d \
|
|
--name census-agent \
|
|
--restart unless-stopped \
|
|
-p 9876:9876 \
|
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
|
census-agent:latest
|
|
@echo "Agent started. Get token with: docker logs census-agent | grep 'API Token'"
|
|
|
|
# Stop Docker agent
|
|
stop-agent-docker:
|
|
@echo "Stopping Census Agent..."
|
|
docker stop census-agent || true
|
|
docker rm census-agent || true
|
|
|
|
# Clean build artifacts
|
|
clean:
|
|
@echo "Cleaning build artifacts..."
|
|
rm -rf bin/census-agent
|
|
@echo "Cleaned"
|
|
|
|
# Docker Compose shortcuts
|
|
compose-up:
|
|
@echo "Starting agent with docker-compose..."
|
|
@echo "Detected Docker socket GID: $(DOCKER_GID)"
|
|
@if [ ! -f .env ]; then \
|
|
echo "Creating .env file with DOCKER_GID..."; \
|
|
echo "DOCKER_GID=$(DOCKER_GID)" > .env; \
|
|
echo "# Add your API token below (or it will be auto-generated):" >> .env; \
|
|
echo "#API_TOKEN=your-token-here" >> .env; \
|
|
fi
|
|
DOCKER_GID=$(DOCKER_GID) docker-compose -f docker-compose.agent.yml up -d --build
|
|
@echo "Agent started! Get token with: docker-compose -f docker-compose.agent.yml logs | grep 'API Token'"
|
|
|
|
compose-down:
|
|
@echo "Stopping agent..."
|
|
docker-compose -f docker-compose.agent.yml down
|
|
|
|
compose-logs:
|
|
docker-compose -f docker-compose.agent.yml logs -f
|
|
|
|
# Display help
|
|
help:
|
|
@echo "Census Agent Makefile"
|
|
@echo ""
|
|
@echo "Detected Docker Socket GID: $(DOCKER_GID)"
|
|
@echo ""
|
|
@echo "Usage:"
|
|
@echo " make build-agent - Build agent binary"
|
|
@echo " make build-agent-docker - Build agent Docker image (with correct GID)"
|
|
@echo " make run-agent - Run agent binary"
|
|
@echo " make run-agent-docker - Run agent in Docker"
|
|
@echo " make stop-agent-docker - Stop Docker agent"
|
|
@echo " make compose-up - Start agent with docker-compose (recommended)"
|
|
@echo " make compose-down - Stop agent started with docker-compose"
|
|
@echo " make compose-logs - View agent logs"
|
|
@echo " make clean - Remove build artifacts"
|
|
@echo " make help - Show this help"
|