diff --git a/lib/docker.sh b/lib/docker.sh new file mode 100644 index 0000000..2d8432c --- /dev/null +++ b/lib/docker.sh @@ -0,0 +1,33 @@ +#!/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" "$@" +}