From 72a5cff90e9af4efd60ab02f3aab1568241d5b40 Mon Sep 17 00:00:00 2001 From: CI-DEV <154627941+IlumCI@users.noreply.github.com> Date: Fri, 1 Aug 2025 21:00:17 +0300 Subject: [PATCH] Create docker-utils.ps1 --- scripts/docker/docker-utils.ps1 | 139 ++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 scripts/docker/docker-utils.ps1 diff --git a/scripts/docker/docker-utils.ps1 b/scripts/docker/docker-utils.ps1 new file mode 100644 index 00000000..36ba12db --- /dev/null +++ b/scripts/docker/docker-utils.ps1 @@ -0,0 +1,139 @@ +# Docker utilities for Swarms project (PowerShell version) +# Usage: .\scripts\docker-utils.ps1 [command] + +param( + [Parameter(Position=0)] + [string]$Command = "help" +) + +# Configuration +$ImageName = "swarms" +$Registry = "kyegomez" +$FullImageName = "$Registry/$ImageName" + +# Functions +function Write-Usage { + Write-Host "Docker Utilities for Swarms" -ForegroundColor Blue + Write-Host "" + Write-Host "Usage: .\scripts\docker-utils.ps1 [command]" + Write-Host "" + Write-Host "Commands:" + Write-Host " build Build the Docker image locally" + Write-Host " test Test the Docker image" + Write-Host " run Run the Docker image interactively" + Write-Host " push Push to DockerHub (requires login)" + Write-Host " clean Clean up Docker images and containers" + Write-Host " logs Show logs from running containers" + Write-Host " shell Open shell in running container" + Write-Host " compose-up Start services with docker-compose" + Write-Host " compose-down Stop services with docker-compose" + Write-Host " help Show this help message" + Write-Host "" +} + +function Build-Image { + Write-Host "Building Docker image..." -ForegroundColor Green + docker build -t "$ImageName`:latest" . + Write-Host " Image built successfully!" -ForegroundColor Green +} + +function Test-Image { + Write-Host "Testing Docker image..." -ForegroundColor Green + docker run --rm "$ImageName`:latest" python test_docker.py + Write-Host " Image test completed!" -ForegroundColor Green +} + +function Run-Interactive { + Write-Host "Running Docker image interactively..." -ForegroundColor Green + docker run -it --rm -v "${PWD}:/app" -w /app "$ImageName`:latest" bash +} + +function Push-ToDockerHub { + Write-Host "⚠ Make sure you're logged into DockerHub first!" -ForegroundColor Yellow + Write-Host "Pushing to DockerHub..." -ForegroundColor Green + + # Tag the image + docker tag "$ImageName`:latest" "$FullImageName`:latest" + + # Push to DockerHub + docker push "$FullImageName`:latest" + + Write-Host " Image pushed to DockerHub!" -ForegroundColor Green +} + +function Clean-Docker { + Write-Host "Cleaning up Docker resources..." -ForegroundColor Yellow + + # Stop and remove containers + docker ps -aq | ForEach-Object { docker rm -f $_ } + + # Remove images + docker images "$ImageName" -q | ForEach-Object { docker rmi -f $_ } + + # Remove dangling images + docker image prune -f + + Write-Host " Docker cleanup completed!" -ForegroundColor Green +} + +function Show-Logs { + Write-Host "Showing logs from running containers..." -ForegroundColor Green + docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" + Write-Host "" + + # Show logs for swarms containers + $containers = docker ps --filter "name=swarms" --format "{{.Names}}" + foreach ($container in $containers) { + Write-Host "Logs for $container:" -ForegroundColor Blue + docker logs $container --tail 20 + Write-Host "" + } +} + +function Open-Shell { + Write-Host "Opening shell in running container..." -ForegroundColor Green + + # Find running swarms container + $container = docker ps --filter "name=swarms" --format "{{.Names}}" | Select-Object -First 1 + + if (-not $container) { + Write-Host " No running swarms container found!" -ForegroundColor Red + Write-Host "Start a container first with: .\scripts\docker-utils.ps1 run" + exit 1 + } + + Write-Host "Opening shell in $container..." -ForegroundColor Blue + docker exec -it $container bash +} + +function Compose-Up { + Write-Host "Starting services with docker-compose..." -ForegroundColor Green + docker-compose up -d + Write-Host " Services started!" -ForegroundColor Green + Write-Host "Use 'docker-compose logs -f' to view logs" +} + +function Compose-Down { + Write-Host "Stopping services with docker-compose..." -ForegroundColor Yellow + docker-compose down + Write-Host " Services stopped!" -ForegroundColor Green +} + +# Main script logic +switch ($Command.ToLower()) { + "build" { Build-Image } + "test" { Test-Image } + "run" { Run-Interactive } + "push" { Push-ToDockerHub } + "clean" { Clean-Docker } + "logs" { Show-Logs } + "shell" { Open-Shell } + "compose-up" { Compose-Up } + "compose-down" { Compose-Down } + "help" { Write-Usage } + default { + Write-Host " Unknown command: $Command" -ForegroundColor Red + Write-Usage + exit 1 + } +}