SIGN IN SIGN UP

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