81 lines
2.3 KiB
Bash
81 lines
2.3 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
LOG_FILE="$(dirname "$(dirname "$0")")/setup.log"
|
||
|
|
||
|
# Log function
|
||
|
log() {
|
||
|
echo "$1" | tee -a "$LOG_FILE"
|
||
|
}
|
||
|
|
||
|
# Function to prompt for yes/no input
|
||
|
prompt_yes_no() {
|
||
|
while true; do
|
||
|
read -r -p "$1 (y/n): " REPLY
|
||
|
case "$REPLY" in
|
||
|
[Yy]* ) return 0 ;;
|
||
|
[Nn]* ) return 1 ;;
|
||
|
* ) log "Please answer yes or no." ;;
|
||
|
esac
|
||
|
done
|
||
|
}
|
||
|
|
||
|
# Function to install Docker
|
||
|
install_docker() {
|
||
|
log "Installing Docker..."
|
||
|
if command -v apt &>/dev/null; then
|
||
|
apt update
|
||
|
apt install -y apt-transport-https ca-certificates curl software-properties-common
|
||
|
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
|
||
|
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
|
||
|
apt update
|
||
|
apt install -y docker-ce
|
||
|
elif command -v yum &>/dev/null; then
|
||
|
yum install -y yum-utils
|
||
|
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
|
||
|
yum install -y docker-ce docker-ce-cli containerd.io
|
||
|
else
|
||
|
log "Unsupported package manager. Please install Docker manually."
|
||
|
exit 1
|
||
|
fi
|
||
|
log "Docker installed successfully."
|
||
|
}
|
||
|
|
||
|
# Function to start Docker service
|
||
|
start_docker() {
|
||
|
log "Starting Docker service..."
|
||
|
systemctl start docker
|
||
|
log "Docker service started."
|
||
|
}
|
||
|
|
||
|
# Function to enable Docker service at boot
|
||
|
enable_docker_boot() {
|
||
|
if prompt_yes_no "Do you want Docker to start at boot?"; then
|
||
|
systemctl enable docker
|
||
|
log "Docker service enabled to start at boot."
|
||
|
else
|
||
|
log "Docker service will not start at boot."
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
# Function to add user to Docker group
|
||
|
add_user_to_docker_group() {
|
||
|
log "Please enter the username to add to the Docker group:"
|
||
|
read -r USERNAME
|
||
|
usermod -aG docker "$USERNAME"
|
||
|
log "User $USERNAME added to the Docker group. You may need to log out and log back in for this change to take effect."
|
||
|
}
|
||
|
|
||
|
# Main script execution
|
||
|
log "Starting Docker setup..."
|
||
|
|
||
|
if prompt_yes_no "Do you want to install Docker?"; then
|
||
|
install_docker
|
||
|
start_docker
|
||
|
enable_docker_boot
|
||
|
if prompt_yes_no "Do you want to add a user to the Docker group?"; then
|
||
|
add_user_to_docker_group
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
log "Docker setup complete."
|