Skip to content

Commit 3d5d00b

Browse files
fixing errors in checks
1 parent 3378558 commit 3d5d00b

File tree

1 file changed

+85
-84
lines changed

1 file changed

+85
-84
lines changed

src/docker-in-docker/install.sh

Lines changed: 85 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -370,104 +370,105 @@ echo "Please log out and log back in to apply group changes."
370370
}
371371

372372
if type docker > /dev/null 2>&1 && type dockerd > /dev/null 2>&1; then
373-
echo "Docker / Moby CLI and Engine already installed."
373+
echo "Docker / Moby CLI and Engine already installed."
374374
else
375-
if [ "${USE_MOBY}" = "true" ];then
376-
if { [ "$ID" = "ubuntu" ] || [ "$ID" = "debian" ]; }; then
377-
# Install engine
378-
set +e # Handle error gracefully
379-
apt-get -y install --no-install-recommends \
380-
moby-cli${cli_version_suffix} \
381-
moby-buildx${buildx_version_suffix} \
382-
moby-engine${engine_version_suffix}
383-
exit_code=$?
384-
set -e
385-
386-
if [ ${exit_code} -ne 0 ]; then
387-
err "Packages for moby not available in OS ${ID} ${VERSION_CODENAME} (${architecture}). To resolve, either: (1) set feature option '\"moby\": false' , or (2) choose a compatible OS version (e.g., 'ubuntu-20.04')."
388-
exit 1
389-
fi
375+
if [ "${USE_MOBY}" = "true" ];then
376+
if { [ "$ID" = "ubuntu" ] || [ "$ID" = "debian" ]; }; then
377+
# Install engine
378+
set +e # Handle error gracefully
379+
apt-get -y install --no-install-recommends \
380+
moby-cli${cli_version_suffix} \
381+
moby-buildx${buildx_version_suffix} \
382+
moby-engine${engine_version_suffix}
383+
exit_code=$?
384+
set -e
385+
386+
if [ ${exit_code} -ne 0 ]; then
387+
err "Packages for moby not available in OS ${ID} ${VERSION_CODENAME} (${architecture}). To resolve, either: (1) set feature option '\"moby\": false' , or (2) choose a compatible OS version (e.g., 'ubuntu-20.04')."
388+
exit 1
389+
fi
390390

391-
# Install compose
392-
apt-get -y install --no-install-recommends moby-compose || \
393-
err "Package moby-compose (Docker Compose v2) not available for OS ${ID} ${VERSION_CODENAME} (${architecture}). Skipping."
391+
# Install compose
392+
apt-get -y install --no-install-recommends moby-compose || \
393+
err "Package moby-compose (Docker Compose v2) not available for OS ${ID} ${VERSION_CODENAME} (${architecture}). Skipping."
394394

395-
elif [ "$ID" = "fedora" ] || [ "$ID_LIKE" = "rhel" ]; then
396-
install_docker_or_moby
397-
fi
398-
elif [ "${USE_MOBY}" = "false" ] && { [ "$ID" = "fedora" ] || [ "$ID_LIKE" = "rhel" ]; }; then
399-
400-
#kmod package is required for modprobe
401-
dnf install -y kmod iptables procps-ng
402-
# Load iptable_nat module for docker-in-docker.
403-
# See:
404-
# - https://github.com/ublue-os/bluefin/issues/2365
405-
# - https://github.com/devcontainers/features/issues/1235
406-
mkdir -p /etc/modules-load.d && cat >>/etc/modules-load.d/ip_tables.conf <<EOF
407-
iptable_nat
395+
elif [ "$ID" = "fedora" ] || [ "$ID_LIKE" = "rhel" ]; then
396+
install_docker_or_moby
397+
fi
398+
elif [ "${USE_MOBY}" = "false" ] && { [ "$ID" = "fedora" ] || [ "$ID_LIKE" = "rhel" ]; }; then
399+
400+
#kmod package is required for modprobe
401+
dnf install -y kmod iptables procps-ng
402+
# Load iptable_nat module for docker-in-docker.
403+
# See:
404+
# - https://github.com/ublue-os/bluefin/issues/2365
405+
# - https://github.com/devcontainers/features/issues/1235
406+
mkdir -p /etc/modules-load.d && cat >>/etc/modules-load.d/ip_tables.conf << 'EOF'
407+
iptable_nat
408408
EOF
409409

410-
# https://github.com/devcontainers/features/issues/1235
411-
if uname -r | grep -q '\.fc'; then
412-
sudo update-alternatives --set iptables /usr/sbin/iptables-nft
413-
fi
414-
415-
# Get Fedora release version (e.g. 38, 39)
416-
FEDORA_VERSION=$(rpm -E %fedora)
417-
418-
echo "Detected Fedora version: $FEDORA_VERSION"
419-
420-
echo "Installing dnf-plugins-core..."
421-
if ! dnf install -y dnf-plugins-core; then
422-
echo "⚠️ Failed to install dnf-plugins-core. Falling back to Moby."
423-
install_docker_or_moby
424-
exit 0
425-
fi
426-
echo "Setting up Docker CE repo..."
427-
if ! dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo; then
428-
echo "⚠️ Failed to add Docker CE repo. Falling back to Moby."
429-
install_docker_or_moby
430-
exit 0
431-
fi
410+
# https://github.com/devcontainers/features/issues/1235
411+
if uname -r | grep -q '\.fc'; then
412+
sudo update-alternatives --set iptables /usr/sbin/iptables-nft
413+
fi
432414

433-
# Try installing Docker CE with fallback to Moby
434-
echo "Attempting to install Docker CE..."
415+
# Get Fedora release version (e.g. 38, 39)
416+
FEDORA_VERSION=$(rpm -E %fedora)
417+
418+
echo "Detected Fedora version: $FEDORA_VERSION"
419+
420+
echo "Installing dnf-plugins-core..."
421+
if ! dnf install -y dnf-plugins-core; then
422+
echo "⚠️ Failed to install dnf-plugins-core. Falling back to Moby."
423+
install_docker_or_moby
424+
exit 0
425+
fi
426+
echo "Setting up Docker CE repo..."
427+
if ! dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo; then
428+
echo "⚠️ Failed to add Docker CE repo. Falling back to Moby."
429+
install_docker_or_moby
430+
exit 0
431+
fi
435432

436-
set +e
437-
dnf install -y docker docker-ce docker-ce-cli containerd.io
438-
DOCKER_INSTALL_EXIT_CODE=$?
439-
set -e
433+
# Try installing Docker CE with fallback to Moby
434+
echo "Attempting to install Docker CE..."
440435

441-
if [ $DOCKER_INSTALL_EXIT_CODE -ne 0 ] || ! command -v docker >/dev/null || ! command -v dockerd >/dev/null; then
442-
echo "⚠️ Docker CE installation appears incomplete or failed — falling back to Moby."
436+
set +e
437+
dnf install -y docker docker-ce docker-ce-cli containerd.io
438+
DOCKER_INSTALL_EXIT_CODE=$?
439+
set -e
443440

444-
install_docker_or_moby
441+
if [ $DOCKER_INSTALL_EXIT_CODE -ne 0 ] || ! command -v docker >/dev/null || ! command -v dockerd >/dev/null; then
442+
echo "⚠️ Docker CE installation appears incomplete or failed — falling back to Moby."
445443

446-
# Optional: symlink to match docker-ce command names
447-
ln -sf /usr/bin/moby-engine /usr/bin/dockerd || true
448-
else
449-
echo "✅ Docker CE installed successfully!"
450-
fi
444+
install_docker_or_moby
451445

452-
# Create docker group if missing
453-
if ! getent group docker > /dev/null; then
454-
echo "Creating 'docker' group..."
455-
groupadd docker
456-
fi
446+
# Optional: symlink to match docker-ce command names
447+
ln -sf /usr/bin/moby-engine /usr/bin/dockerd || true
448+
else
449+
echo "✅ Docker CE installed successfully!"
450+
fi
457451

458-
# Add user to docker group
459-
USERNAME=${USERNAME:-vscode}
460-
echo "Adding user '$USERNAME' to docker group..."
461-
usermod -aG docker "$USERNAME"
452+
# Create docker group if missing
453+
if ! getent group docker > /dev/null; then
454+
echo "Creating 'docker' group..."
455+
groupadd docker
456+
fi
462457

463-
# Final message
464-
echo "✅ Docker or Moby installed and user configured."
465-
else
466-
echo "❌ Unsupported OS or configuration. Exiting."
467-
exit 1
468-
fi
458+
# Add user to docker group
459+
USERNAME=${USERNAME:-vscode}
460+
echo "Adding user '$USERNAME' to docker group..."
461+
usermod -aG docker "$USERNAME"
469462

470-
echo "Finished installing Docker / Moby!"
463+
# Final message
464+
echo "✅ Docker or Moby installed and user configured."
465+
else
466+
if { [ "$ID" = "fedora" ] || [ "$ID_LIKE" = "rhel" ]; }; then
467+
echo "❌ Unsupported OS or configuration. Exiting."
468+
exit 1
469+
fi
470+
fi
471+
echo "Finished installing Docker / Moby!"
471472
fi
472473

473474

0 commit comments

Comments
 (0)