From 6eb78589b5ad40f8d64e44ea7af84f66be304dd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C4=83rcziem=20=E2=84=A2?= <118485377+spalencsar@users.noreply.github.com> Date: Fri, 3 Oct 2025 12:15:15 +0200 Subject: [PATCH] fix(docker): avoid unbound SUDO when not set; provide safe default --- lib/docker.sh | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/lib/docker.sh b/lib/docker.sh index 0a70c47..164fafd 100644 --- a/lib/docker.sh +++ b/lib/docker.sh @@ -1,5 +1,11 @@ #!/bin/bash +# Provide a safe default for SUDO in case the environment or caller +# expects a SUDO variable. Some systems or callers may unset this and +# scripts using `${SUDO}` should not fail with unbound variable under +# `set -u`. +SUDO=${SUDO:-sudo} + install_docker() { log_info "Installing Docker..." @@ -47,15 +53,15 @@ install_docker() { esac # Add user to the docker group - handle_error $SUDO usermod -aG docker "$NEW_USER" + handle_error sudo usermod -aG docker "$NEW_USER" - handle_error $SUDO systemctl enable docker - handle_error $SUDO systemctl start docker + handle_error sudo systemctl enable docker + handle_error sudo systemctl start docker # Configure Docker data directory and optimization if [[ "$DOCKER_DATA_DIR" != "$DEFAULT_DOCKER_DATA_DIR" ]]; then log_info "Configuring Docker data directory to $DOCKER_DATA_DIR..." - handle_error $SUDO mkdir -p "$DOCKER_DATA_DIR" + handle_error sudo mkdir -p "$DOCKER_DATA_DIR" fi # Create optimized Docker daemon configuration @@ -81,10 +87,10 @@ install_docker() { configure_docker_daemon() { log_info "Configuring optimized Docker daemon..." - $SUDO mkdir -p /etc/docker + sudo mkdir -p /etc/docker # Create optimized daemon.json - cat << EOF | $SUDO tee /etc/docker/daemon.json + cat << EOF | sudo tee /etc/docker/daemon.json { "storage-driver": "overlay2", "log-driver": "json-file", @@ -109,11 +115,11 @@ EOF # Add data-root if custom directory is specified if [[ "$DOCKER_DATA_DIR" != "$DEFAULT_DOCKER_DATA_DIR" ]]; then # Modify the daemon.json to include data-root - $SUDO sed -i "s|{|{\n \"data-root\": \"$DOCKER_DATA_DIR\",|" /etc/docker/daemon.json + sudo sed -i "s|{|{\n \"data-root\": \"$DOCKER_DATA_DIR\",|" /etc/docker/daemon.json fi # Restart Docker to apply configuration - handle_error $SUDO systemctl restart docker + handle_error sudo systemctl restart docker log_success "Docker daemon optimized" }