|
| 1 | +#!/bin/bash |
| 2 | +header() { |
| 3 | + TS=`date +"%Y-%m-%dT%H:%M:%S%:z"` |
| 4 | + echo "${TS} +--------------------------------------------+" |
| 5 | + echo "${TS} | $*" |
| 6 | + echo "${TS} +--------------------------------------------+" |
| 7 | + echo |
| 8 | +} |
| 9 | + |
| 10 | +msg() { |
| 11 | + echo `date +"%Y-%m-%dT%H:%M:%S%:z"` $* |
| 12 | +} |
| 13 | + |
| 14 | +# Check if the file name is provided |
| 15 | +if [ -z "$1" ]; then |
| 16 | + echo "Usage: $0 <package_list.txt>" |
| 17 | + exit 1 |
| 18 | +fi |
| 19 | + |
| 20 | +PACKAGE_LIST_FILE=$1 |
| 21 | + |
| 22 | +# Check if the file exists |
| 23 | +if [ ! -f "$PACKAGE_LIST_FILE" ]; then |
| 24 | + echo "File $PACKAGE_LIST_FILE not found!" |
| 25 | + exit 1 |
| 26 | +fi |
| 27 | +header "Installing additional packages" |
| 28 | +# Update the package list |
| 29 | +msg "Updating package list..." |
| 30 | +sudo DEBIAN_FRONTEND=noninteractive apt-get -qq update -y |
| 31 | + |
| 32 | +# installing docker |
| 33 | +for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done |
| 34 | + |
| 35 | +# Add Docker's official GPG key: |
| 36 | +sudo DEBIAN_FRONTEND=noninteractive apt-get update -y |
| 37 | +sudo DEBIAN_FRONTEND=noninteractive apt-get install ca-certificates curl -y |
| 38 | +sudo install -m 0755 -d /etc/apt/keyrings |
| 39 | +sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc |
| 40 | +sudo chmod a+r /etc/apt/keyrings/docker.asc |
| 41 | + |
| 42 | +# Add the repository to Apt sources: |
| 43 | +echo \ |
| 44 | + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ |
| 45 | + $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ |
| 46 | + sudo tee /etc/apt/sources.list.d/docker.list > /dev/null |
| 47 | +sudo DEBIAN_FRONTEND=noninteractive apt-get update -y |
| 48 | + |
| 49 | +sudo DEBIAN_FRONTEND=noninteractive apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y |
| 50 | + |
| 51 | +# Read the file line by line and install each package |
| 52 | +while IFS= read -r package || [ -n "$package" ]; do |
| 53 | + if [[ ! -z "$package" && "$package" != \#* ]]; then |
| 54 | + echo "Installing $package..." |
| 55 | + sudo DEBIAN_FRONTEND=noninteractive apt-get -qq install -y "$package" |
| 56 | + sudo dpkg --configure -a |
| 57 | + fi |
| 58 | +done < "$PACKAGE_LIST_FILE" |
| 59 | + |
| 60 | +msg "All packages from $PACKAGE_LIST_FILE have been installed." |
0 commit comments