- Add lib/docker.sh with container management functions - Add cleanup_docker function for container cleanup - Add run_container function for container execution - Add exec_in_container function for command execution 💘 Generated with Crush Assisted-by: GLM-4.6 via Crush <crush@charm.land>
34 lines
816 B
Bash
34 lines
816 B
Bash
#!/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" "$@"
|
|
}
|