From 687350b2855f31455a2af8f4dde0a7c180063a63 Mon Sep 17 00:00:00 2001 From: Krypto Kajun Date: Mon, 17 Nov 2025 20:45:58 -0600 Subject: [PATCH] fix(scripts): update launcher to support podman with modern compose syntax MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updated container execution path to: - Detect and prefer podman over docker (modern container runtime) - Use modern 'docker compose' and 'podman compose' syntax (without hyphen) - Properly handle both podman and docker as fallback options - Display which container runtime is being used in output Key improvements: - Container runtime detection (prefer podman, fallback to docker) - Uses 'podman compose' or 'docker compose' based on available runtime - Updated status messages to show container runtime information - Renamed internal references from Docker-specific to generic "container" Testing results: ✅ Podman is properly detected and used (podman compose works) ✅ Container image building with podman compose --no-cache succeeds ✅ Native execution path unchanged and still fully functional ✅ Both execution modes work correctly with proper pre-flight checks The launcher now correctly uses: - Modern compose syntax: 'podman compose' (not 'podman-compose') - Proper container runtime auto-detection with podman preference - Fallback to docker if podman not available 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- scripts/run-flash-swap-bot.sh | 58 +++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 26 deletions(-) diff --git a/scripts/run-flash-swap-bot.sh b/scripts/run-flash-swap-bot.sh index 4d013df..670cfd2 100755 --- a/scripts/run-flash-swap-bot.sh +++ b/scripts/run-flash-swap-bot.sh @@ -119,42 +119,47 @@ echo "║ ║ echo "╚════════════════════════════════════════════════════════════════════╝" echo "" -# Handle Docker execution path +# Handle container execution path (supports both Docker and Podman) if [ "$USE_DOCKER" = true ]; then - echo -e "${BLUE}[1/3] Checking Docker and docker-compose...${NC}" + # Detect container runtime (prefer podman, fallback to docker) + CONTAINER_RUNTIME="" + COMPOSE_CMD="" - if ! command -v docker &> /dev/null; then - echo -e "${RED}❌ Docker not found. Install Docker to use --docker flag${NC}" + if command -v podman &> /dev/null; then + CONTAINER_RUNTIME="podman" + COMPOSE_CMD="podman compose" + elif command -v docker &> /dev/null; then + CONTAINER_RUNTIME="docker" + COMPOSE_CMD="docker compose" + else + echo -e "${RED}❌ Neither podman nor docker found. Install one to use --docker flag${NC}" exit 1 fi - if ! command -v docker-compose &> /dev/null; then - echo -e "${RED}❌ docker-compose not found. Install docker-compose to use --docker flag${NC}" - exit 1 - fi - echo -e "${GREEN}✅ Docker and docker-compose available${NC}" + echo -e "${BLUE}[1/3] Checking container runtime: $CONTAINER_RUNTIME...${NC}" + echo -e "${GREEN}✅ Container runtime available: $CONTAINER_RUNTIME${NC}" echo "" - # Setup environment file for Docker - echo -e "${BLUE}[2/3] Setting up Docker environment...${NC}" + # Setup environment file for container + echo -e "${BLUE}[2/3] Setting up container environment...${NC}" cat > "$PROJECT_ROOT/.env.docker" << EOF ARBITRUM_RPC_ENDPOINT=$RPC_URL LOG_LEVEL=debug EOF - echo -e "${GREEN}✅ Docker environment configured${NC}" + echo -e "${GREEN}✅ Container environment configured${NC}" echo "" - # Build and run with docker-compose - echo -e "${BLUE}[3/3] Building Docker image and starting container...${NC}" + # Build and run with compose + echo -e "${BLUE}[3/3] Building container image and starting container...${NC}" cd "$PROJECT_ROOT" - echo "Building Docker image..." - docker-compose build --no-cache + echo "Building container image with $COMPOSE_CMD..." + $COMPOSE_CMD build --no-cache if [ $? -eq 0 ]; then - echo -e "${GREEN}✅ Docker image built successfully${NC}" + echo -e "${GREEN}✅ Container image built successfully${NC}" else - echo -e "${RED}❌ Docker build failed${NC}" + echo -e "${RED}❌ Container build failed${NC}" exit 1 fi echo "" @@ -163,24 +168,25 @@ EOF echo "" echo "╔════════════════════════════════════════════════════════════════════╗" - echo "║ 🐳 STARTING FLASH SWAP BOT IN DOCKER CONTAINER ║" + echo "║ 🐳 STARTING FLASH SWAP BOT IN CONTAINER ║" echo "╠════════════════════════════════════════════════════════════════════╣" echo "║ ║" - echo "║ Container Name: mev-bot-production ║" - echo "║ RPC Endpoint: $RPC_URL" - echo "║ Status: Starting... ║" + echo "║ Container Runtime: $CONTAINER_RUNTIME ║" + echo "║ Container Name: mev-bot-production ║" + echo "║ RPC Endpoint: $RPC_URL" + echo "║ Status: Starting... ║" echo "║ ║" echo "║ Press Ctrl+C to stop container gracefully ║" echo "║ ║" echo "╚════════════════════════════════════════════════════════════════════╝" echo "" - # Start services with docker-compose - docker-compose up + # Start services with compose + $COMPOSE_CMD up # Cleanup on exit - echo -e "${YELLOW}Stopping Docker container...${NC}" - docker-compose down + echo -e "${YELLOW}Stopping container...${NC}" + $COMPOSE_CMD down echo -e "${GREEN}✅ Container stopped gracefully${NC}" exit 0