41 lines
1.6 KiB
Bash
41 lines
1.6 KiB
Bash
#!/bin/bash
|
|
|
|
PRIMARY_NIC=$(ip route | awk '/default/ {print $5}')
|
|
IP_ADDRESS=$(ip -4 addr show "$PRIMARY_NIC" | awk '/inet / {print $2}' | cut -d/ -f1)
|
|
|
|
if ! [ -x "$(command -v docker)" ]; then
|
|
read -p "Docker not detected. Do you want to install it?" -n 1 -r
|
|
echo
|
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
|
echo "Installing docker"
|
|
# https://docs.docker.com/engine/install/ubuntu/
|
|
# Add Docker's official GPG key:
|
|
sudo apt-get update
|
|
sudo apt-get install ca-certificates curl
|
|
sudo install -m 0755 -d /etc/apt/keyrings
|
|
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
|
|
sudo chmod a+r /etc/apt/keyrings/docker.asc
|
|
|
|
# Add the repository to Apt sources:
|
|
echo \
|
|
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
|
|
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
|
|
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
|
sudo apt-get update
|
|
|
|
sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
|
else
|
|
exit 1
|
|
fi
|
|
fi
|
|
if [ ! "$(docker ps -a -q -f name=portainer)" ]; then
|
|
echo "Installing portainer"
|
|
if ! (docker volume ls --format "{{.Name}}" | grep -q "^portainer_data$"); then
|
|
echo "Create portainer volume"
|
|
docker volume create portainer_data
|
|
fi
|
|
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:lts
|
|
fi
|
|
|
|
echo "You can now access Portainer on https://$IP_ADDRESS:9443"
|