bolt/vm_automation/ubuntu/tasks/install_docker.sh

51 lines
1.5 KiB
Bash

#!/bin/bash
# Task to Install Docker on Ubuntu (ubuntu::install_docker)
# Input Variables
INSTALL_DOCKER="${PT_install_docker_bool}"
# Check if Docker installation is requested
if [ "$INSTALL_DOCKER" != "true" ]; then
# Output JSON that Bolt will understand
echo '{"status": "skipped", "message": "Docker installation not requested, skipping..."}'
exit 0
fi
# Update package list and install prerequisites
sudo apt-get update
sudo apt-get install -y \
ca-certificates \
curl \
gnupg
# Add Docker's official GPG key
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Add the repository to Apt sources
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Update package list again and install Docker
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Add current user to docker group
sudo usermod -aG docker "$USER"
# Start and enable Docker service
sudo systemctl start docker
sudo systemctl enable docker
# Verify installation
if docker --version > /dev/null 2>&1; then
echo "Docker installed successfully"
exit 0
else
echo "Docker installation failed"
exit 1
fi