diff --git a/scripts/chce_dockera.sh b/scripts/chce_dockera.sh index a8ba9a1..83570cc 100755 --- a/scripts/chce_dockera.sh +++ b/scripts/chce_dockera.sh @@ -1,32 +1,111 @@ #!/bin/bash # docker + docker-compose # Autor: Jakub Rolecki +# Zmodyfikowane przez: Jakub Suchenek (itsanon.xyz) -# Sprawdz uprawnienia przed wykonaniem skryptu instalacyjnego if [[ $EUID -ne 0 ]]; then - echo -e "W celu instalacji tego pakietu potrzebujesz wyzszych uprawnien! Uzyj polecenia \033[1;31msudo ./chce_dockera.sh\033[0m lub zaloguj sie na konto roota i wywolaj skrypt ponownie." - exit 1 + echo -e "W celu instalacji tego pakietu potrzebujesz wyzszych uprawnien! Uzyj polecenia \033[1;31msudo ./chce_dockera.sh\033[0m lub zaloguj sie na konto roota i wywolaj skrypt ponownie." + exit 1 fi -apt update -apt install -y apt-transport-https ca-certificates curl gnupg lsb-release +if [ ! -f /etc/os-release ]; then + echo "Nie można wykryć systemu operacyjnego!" + exit 1 +else + . /etc/os-release +fi + +if [ ! "$ID" == "ubuntu" ]; then + echo "Ten skrypt działa tylko na Ubuntu!" + exit 1 +fi + +# Zgodnie z oficjalną dokumentacją, minimalnym wspieranym systemem jest Ubuntu 22.04 LTS. +# https://docs.docker.com/engine/install/ubuntu/#os-requirements +if [[ "${VERSION_ID:0:2}" -lt 22 ]]; then + echo "Ten skrypt działa tylko na Ubuntu 22.04 lub nowszym!" + exit 1 +fi -# Dodanie oficjalnego klucza GPG Dockera -curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg +echo "Usuwanie starych lub innych implementacji Dockera..." +apt-get remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc | cut -f1) +if [[ $? -ne 0 ]]; then + echo "Wystąpił błąd podczas usuwania! Zobacz co się stało powyżej." + exit 1 +fi -# Dodanie oficjalnych repozytorium Dockera do systmeu -echo \ - "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/$(lsb_release -is | tr '[:upper:]' '[:lower:]') \ - $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null +echo "Przygotowywanie repozytorium Dockera..." +apt-get update && apt-get install -y ca-certificates curl +if [[ $? -ne 0 ]]; then + echo "Nie można zainstalować pośrednich zależności Dodckera! Zobacz co się stało powyżej." + exit 1 +fi -apt update -# Instalacja dockera -apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin +echo "Pobieranie klucza GPG repozytorium Dockera..." +install -m 0755 -d /etc/apt/keyrings +curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc +if [[ $? -ne 0 ]]; then + echo "Nie można pobrać klucza GPG!" + exit 1 +fi +chmod a+r /etc/apt/keyrings/docker.asc -# Nadanie uprawnień do Dockera dla obecnego non-root usera -groupadd docker -usermod -aG docker $USER -newgrp docker +echo "Wykryto instalację Ubuntu '$UBUNTU_CODENAME'." + +echo "Dodawanie repozytorium Dockera..." +tee /etc/apt/sources.list.d/docker.sources < Możesz korzystać zarówno z 'docker' jak i 'docker compose'." +echo " Uwaga, NIE 'docker-compose'!" +if [ ! "$DEFAULT_USER" == "" ]; then + echo "> Korzystając z Dockera, nie musisz pisać 'sudo'." +fi +echo ""