- Use full path: /usr/local/bin/check-help-coverage.sh - Add error message if image not built or outdated - Reminds user to run 'make build' first
82 lines
3.1 KiB
Makefile
82 lines
3.1 KiB
Makefile
.PHONY: help build-upstream build-scratch build-kali build-all test clean push
|
|
|
|
# Default target
|
|
help:
|
|
@echo "File Analysis Container - Build System"
|
|
@echo ""
|
|
@echo "Available targets:"
|
|
@echo " build Build from REMnux upstream image (recommended, default)"
|
|
@echo " build-scratch Build from Ubuntu 20.04 base (full control)"
|
|
@echo " build-all Build all variants"
|
|
@echo " test Run tests on all builds"
|
|
@echo " test-remnux Test REMnux build"
|
|
@echo " test-scratch Test scratch build"
|
|
@echo " push Push images to Docker Hub"
|
|
@echo " clean Remove all built images"
|
|
@echo " shell Interactive shell (REMnux build)"
|
|
@echo " shell-scratch Interactive shell (scratch build)"
|
|
@echo " coverage Check help coverage"
|
|
@echo ""
|
|
|
|
# Build targets
|
|
build:
|
|
@echo "Building REMnux-based file analysis container..."
|
|
docker build -t tabledevil/file-analysis:latest .
|
|
docker tag tabledevil/file-analysis:latest tabledevil/file-analysis:remnux
|
|
@echo "✓ Build complete: tabledevil/file-analysis:latest"
|
|
|
|
build-scratch:
|
|
@echo "Building from scratch (Ubuntu 20.04 base)..."
|
|
docker build -f Dockerfile.scratch -t tabledevil/file-analysis:scratch .
|
|
@echo "✓ Build complete: tabledevil/file-analysis:scratch"
|
|
|
|
build-all: build build-scratch
|
|
@echo "✓ All variants built successfully"
|
|
|
|
# Test targets
|
|
test: test-remnux test-scratch
|
|
@echo "✓ All tests passed"
|
|
|
|
test-remnux:
|
|
@echo "Testing REMnux build..."
|
|
@docker run --rm tabledevil/file-analysis:latest bash -c "which fhelp && fhelp cheat pdfid"
|
|
@docker run --rm tabledevil/file-analysis:latest bash -c "which pdfid.py && which capa && which visidata"
|
|
@docker run --rm tabledevil/file-analysis:latest bash -c "zsh --version && fish --version"
|
|
@echo "✓ REMnux build tests passed"
|
|
|
|
test-scratch:
|
|
@echo "Testing scratch build..."
|
|
@docker run --rm tabledevil/file-analysis:scratch bash -c "which fhelp && fhelp cheat pdfid"
|
|
@docker run --rm tabledevil/file-analysis:scratch bash -c "which pdfid.py && which capa && which pwsh"
|
|
@docker run --rm tabledevil/file-analysis:scratch bash -c "zsh --version && fish --version"
|
|
@echo "✓ Scratch build tests passed"
|
|
|
|
# Docker Hub push
|
|
push:
|
|
@echo "Pushing images to Docker Hub..."
|
|
docker push tabledevil/file-analysis:latest
|
|
docker push tabledevil/file-analysis:remnux
|
|
docker push tabledevil/file-analysis:scratch
|
|
@echo "✓ Images pushed successfully"
|
|
|
|
# Clean up
|
|
clean:
|
|
@echo "Removing built images..."
|
|
-docker rmi tabledevil/file-analysis:latest
|
|
-docker rmi tabledevil/file-analysis:remnux
|
|
-docker rmi tabledevil/file-analysis:scratch
|
|
@echo "✓ Cleanup complete"
|
|
|
|
# Interactive shells for testing
|
|
shell:
|
|
docker run -it --rm -v "$$(pwd):/data" tabledevil/file-analysis:latest
|
|
|
|
shell-scratch:
|
|
docker run -it --rm -v "$$(pwd):/data" tabledevil/file-analysis:scratch
|
|
|
|
# Run help coverage check
|
|
coverage:
|
|
@echo "Checking help coverage..."
|
|
@docker run --rm tabledevil/file-analysis:latest /usr/local/bin/check-help-coverage.sh || \
|
|
(echo "" && echo "Error: Image not built or outdated. Run 'make build' first." && exit 1)
|