fix: add lsb-release prerequisite and Ubuntu codename fallback
Issue 1: lsb_release command not found - Docker repository creation failed: lsb_release -cs returned empty - Resulted in malformed /etc/apt/sources.list.d/docker.list - Error: 'Malformed entry 1 in list file (Component)' Issue 2: No fallback for codename detection - Script assumed lsb_release would always be available - No graceful handling when lsb-release package missing Fix: 1. Add lsb-release to prerequisite checks and auto-install 2. Add robust Ubuntu codename detection with fallbacks: - Primary: lsb_release -cs (if available) - Fallback 1: /etc/os-release VERSION_CODENAME - Fallback 2: Default to 'noble' (Ubuntu 24.04) Benefits: ✅ Works even in minimal containers without lsb-release ✅ Multiple detection methods for robustness ✅ Clear warning if falling back to default ✅ Docker repository list always valid ✅ Prevents 'Malformed entry' errors Detection logic: 1. Check if lsb_release command exists 2. If yes: Use lsb_release -cs 3. If no: Parse /etc/os-release for VERSION_CODENAME 4. If both fail: Default to 'noble' with warning Example output: [INFO] Downloading Docker GPG key... [INFO] Converting GPG key to binary format... [SUCCESS] Docker GPG key installed [INFO] Detected Ubuntu codename: noble # OR [WARNING] Could not detect Ubuntu codename, defaulting to 'noble' Note: Ubuntu 24.04 = noble (current target platform)
V
Vacbo committed
d5961bb8832bee6b0c3d546c5b0df6d3a5db4ae7
Parent: 28d5db1