Files
scripts/docker-apt-http-lxcs.sh
T

94 lines
2.3 KiB
Bash
Raw Normal View History

2026-10-01 13:29:46 +02:00
```bash
2026-10-01 13:21:14 +02:00
#!/usr/bin/env bash
set -u
echo
echo "=============================================="
echo " Docker APT Repo HTTPS -> HTTP LXC Converter"
echo "=============================================="
echo
for CTID in $(pct list | awk 'NR>1 {print $1}'); do
STATUS=$(pct status "$CTID" 2>/dev/null | awk '{print $2}')
NAME=$(pct config "$CTID" 2>/dev/null | awk -F': ' '/^hostname:/ {print $2}')
echo "----------------------------------------------"
echo "Container: $CTID${NAME:+ ($NAME)}"
echo "Status: $STATUS"
if [[ "$STATUS" != "running" ]]; then
echo "SKIP: Container is not running."
continue
fi
OS_ID=$(pct exec "$CTID" -- sh -c \
'. /etc/os-release 2>/dev/null && echo "$ID"' \
2>/dev/null || true)
if [[ "$OS_ID" != "debian" ]]; then
echo "SKIP: Not Debian."
continue
fi
MATCHES=$(pct exec "$CTID" -- sh -c '
grep -RIl \
"https://download\.docker\.com" \
/etc/apt/sources.list \
/etc/apt/sources.list.d \
2>/dev/null || true
')
if [[ -z "$MATCHES" ]]; then
echo "OK: No HTTPS Docker APT repo found."
continue
fi
echo "Found Docker repo in:"
while IFS= read -r FILE; do
[[ -z "$FILE" ]] && continue
echo " $FILE"
2026-10-01 13:29:46 +02:00
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
BASENAME=$(basename "$FILE")
BACKUP_DIR="/root/apt-backups/docker"
BACKUP="${BACKUP_DIR}/${BASENAME}.${TIMESTAMP}.bak"
2026-10-01 13:21:14 +02:00
pct exec "$CTID" -- sh -c "
2026-10-01 13:29:46 +02:00
mkdir -p '$BACKUP_DIR' &&
2026-10-01 13:21:14 +02:00
cp '$FILE' '$BACKUP' &&
sed -i \
's|https://download\.docker\.com|http://download.docker.com|g' \
'$FILE'
"
if [[ $? -eq 0 ]]; then
echo " CHANGED: https -> http"
echo " Backup: $BACKUP"
else
echo " ERROR: Failed to modify $FILE"
fi
done <<< "$MATCHES"
echo
echo "Current Docker repo entries:"
pct exec "$CTID" -- sh -c '
grep -RHn \
"download\.docker\.com" \
/etc/apt/sources.list \
/etc/apt/sources.list.d \
2>/dev/null || true
'
echo
done
echo "=============================================="
echo " Finished"
2026-10-01 13:29:46 +02:00
echo "=============================================="
```