#!/bin/bash # Docker utility functions set -euo pipefail # Clean up Docker containers on exit cleanup_docker() { local container_name="${1:-}" if [ -n "$container_name" ] && docker ps -q --filter "name=^${container_name}$" | grep -q .; then echo "Removing Docker container: $container_name" docker rm -f "$container_name" || true fi } # Run Docker container with automatic cleanup run_container() { local image="${1:-}" local name="${2:-}" local cmd="${3:-}" # Clean up existing container if it exists cleanup_docker "$name" # Run new container with explicit name echo "Starting Docker container: $name" docker run --name "$name" -it --rm "$image" $cmd } # Execute command in container exec_in_container() { local container="${1:-}" shift docker exec -it "$container" "$@" }