Last active
April 27, 2020 23:11
-
-
Save quenbyako/e9a4bb1e39a45ade25c9220b8f607bd2 to your computer and use it in GitHub Desktop.
скрипт установки докера и портейнера
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
echo -e "made with love, by" | |
echo -e "\e[35m _/ _/ _/_/_/_/ _/ _/_/ _/\e[39m" | |
echo -e "\e[35m _/ _/ _/ _/ _/ _/ _/ \e[39m" | |
echo -e "\e[35m _/ _/_/_/ _/ _/_/_/_/ _/ \e[39m" | |
echo -e "\e[35m _/ _/ _/ _/ _/ _/ _/ _/ \e[39m" | |
echo -e "\e[35m_/ _/ _/_/_/_/ _/_/_/_/ _/ _/ _/_/ \e[39m" | |
if [ $USER != "root" ] | |
then | |
echo -e "\e[31m! Скрипт необходимо запустить от рута!\e[39m Добавь 'sudo' перед 'bash'" | |
exit 1 | |
fi | |
stdout=$(mktemp /tmp/dockerinst_stdout.XXXXXX) | |
stderr=$(mktemp /tmp/dockerinst_stderr.XXXXXX) | |
echo -n "удаляем старую версию докера, если она существует... " | |
apt remove -y docker docker-engine docker.io containerd runc > $stdout 2> $stderr | |
exitcode=$? | |
if [ $exitcode != 0 ] && [ $exitcode != 100 ] | |
then | |
echo | |
echo -e "STDOUT:" | |
cat $stdout | |
echo -e "STDERR:" | |
cat $stderr | |
echo -e "EXITCODE:" $exitcode | |
echo -e "\e[31m! Удаление произошло неуспешно!\e[39m Отправь в чатик это сообщение об ошибке, мы все починим! https://t.me/xelaj_developers" | |
exit 1 | |
fi | |
echo -e "\e[32m✅\e[39m" | |
echo -n "Обновляем репозитории... " | |
apt update > $stdout 2> $stderr | |
exitcode=$? | |
if [ $exitcode != 0 ] | |
then | |
echo | |
echo -e "STDOUT:" | |
cat $stdout | |
echo -e "STDERR:" | |
cat $stderr | |
echo -e "EXITCODE:" $exitcode | |
echo -e "\e[31m! Обновление произошло неуспешно!\e[39m Отправь в чатик это сообщение об ошибке, мы все починим! https://t.me/xelaj_developers" | |
exit 1 | |
fi | |
echo -e "\e[32m✅\e[39m" | |
echo -n "Устанавливаем докерские зависимости... " | |
apt install -y \ | |
apt-transport-https \ | |
ca-certificates \ | |
gnupg-agent \ | |
software-properties-common > $stdout 2> $stderr | |
exitcode=$? | |
if [ $exitcode != 0 ] | |
then | |
echo | |
echo -e "STDOUT:" | |
cat $stdout | |
echo -e "STDERR:" | |
cat $stderr | |
echo -e "EXITCODE:" $exitcode | |
echo -e "\e[31m! Установка зависимостей произошла неуспешно!\e[39m Отправь в чатик это сообщение об ошибке, мы все починим! https://t.me/xelaj_developers" | |
exit 1 | |
fi | |
echo -e "\e[32m✅\e[39m" | |
echo -n "Добавляем публичный ключ в базу для шифрования... " | |
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - > $stdout 2> $stderr | |
exitcode=$? | |
if [ $exitcode != 0 ] | |
then | |
echo | |
echo -e "STDOUT:" | |
cat $stdout | |
echo -e "STDERR:" | |
cat $stderr | |
echo -e "EXITCODE:" $exitcode | |
echo -e "\e[31m! Загрузка и добавление ключа произошла неуспешно!\e[39m Отправь в чатик это сообщение об ошибке, мы все починим! https://t.me/xelaj_developers" | |
exit 1 | |
fi | |
echo -e "\e[32m✅\e[39m" | |
export DISTRO_NAME=$(lsb_release -si | tr '[:upper:]' '[:lower:]') | |
echo -n "Добавляем официальный репозиторий докера... " | |
add-apt-repository "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/$DISTRO_NAME $(lsb_release -cs) stable" > $stdout 2> $stderr | |
exitcode=$? | |
if [ $exitcode != 0 ] | |
then | |
echo | |
echo -e "STDOUT:" | |
cat $stdout | |
echo -e "STDERR:" | |
cat $stderr | |
echo -e "EXITCODE:" $exitcode | |
echo -e "\e[31m! добавление репозитория произошло неуспешно!\e[39m Отправь в чатик это сообщение об ошибке, мы все починим! https://t.me/xelaj_developers" | |
exit 1 | |
fi | |
echo -e "\e[32m✅\e[39m" | |
echo -n "Обновляем репозиторий докера... " | |
apt update > $stdout 2> $stderr | |
exitcode=$? | |
if [ $exitcode != 0 ] | |
then | |
echo | |
echo -e "STDOUT:" | |
cat $stdout | |
echo -e "STDERR:" | |
cat $stderr | |
echo -e "EXITCODE:" $exitcode | |
echo -e "\e[31m! Обновление произошло неуспешно!\e[39m Отправь в чатик это сообщение об ошибке, мы все починим! https://t.me/xelaj_developers" | |
exit 1 | |
fi | |
echo -e "\e[32m✅\e[39m" | |
echo -n "Осталось поставить сам докер (ставиться может долго, не переживай)... " | |
apt install -y docker-ce docker-ce-cli containerd.io > $stdout 2> $stderr | |
exitcode=$? | |
if [ $exitcode != 0 ] | |
then | |
echo | |
echo -e "STDOUT:" | |
cat $stdout | |
echo -e "STDERR:" | |
cat $stderr | |
echo -e "EXITCODE:" $exitcode | |
echo -e "\e[31m! Установка докера произошла неуспешно!\e[39m Отправь в чатик это сообщение об ошибке, мы все починим! https://t.me/xelaj_developers" | |
exit 1 | |
fi | |
echo -e "\e[32m✅\e[39m" | |
echo -n "настроить его... " | |
docker volume create portainer_data > $stdout 2> $stderr | |
exitcode=$? | |
if [ $exitcode != 0 ] | |
then | |
echo | |
echo -e "STDOUT:" | |
cat $stdout | |
echo -e "STDERR:" | |
cat $stderr | |
echo -e "EXITCODE:" $exitcode | |
echo -e "\e[31m! Создание базы для графического интерфейса произошло неуспешно!\e[39m Отправь в чатик это сообщение об ошибке, мы все починим! https://t.me/xelaj_developers" | |
exit 1 | |
fi | |
echo -e "\e[32m✅\e[39m" | |
echo -n "Запустить... " | |
service docker start > $stdout 2> $stderr | |
exitcode=$? | |
if [ $exitcode != 0 ] | |
then | |
echo | |
echo -e "STDOUT:" | |
cat $stdout | |
echo -e "STDERR:" | |
cat $stderr | |
echo -e "EXITCODE:" $exitcode | |
echo -e "\e[31m! запуск докера через systemd!\e[39m Отправь в чатик это сообщение об ошибке, мы все починим! https://t.me/xelaj_developers" | |
exit 1 | |
fi | |
echo -e "\e[32m✅\e[39m" | |
echo -n "И установить portainer... " | |
docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer > $stdout 2> $stderr | |
exitcode=$? | |
if [ $exitcode != 0 ] | |
then | |
echo -e "EXITCODE:" $exitcode | |
echo -e "\e[31m! загрузка и установка portainer произошла неуспешно!\e[39m Отправь в чатик это сообщение об ошибке, мы все починим! https://t.me/xelaj_developers" | |
exit 1 | |
fi | |
echo -e "\e[32m✅\e[39m" | |
echo -e "\e[34m ## . \e[39m" | |
echo -e "\e[34m ## ## ## == \e[39m" | |
echo -e "\e[34m ## ## ## ## === \e[39m" | |
echo -e "\e[34m /""""""""""""""""\\\___/ === \e[39m" | |
echo -e "\e[34m ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~ \e[39m" | |
echo -e "\e[34m \\\______ o __/ \e[39m" | |
echo -e "\e[34m \\\ \\\ __/ \e[39m" | |
echo -e "\e[34m \\\____\\\______/ \e[39m" | |
echo | |
echo | |
echo -e "Кайф! теперь открывай сам интерфейс, и мы продолжим настройку нашего докера! Попробуй любой из нижеперечисленных адресов," | |
echo -e "потому что нам то откуда знать, какой из них правильный? Но один из них точно заработает" | |
echo -e "http://127.0.0.1:9000 (если установил прямо на этот компьютер)" | |
echo -e "http://`hostname -I | awk '{print $1}'`:9000 (если установил на raspberry и ты в ЛОКАЛЬНОЙ сети, например в той же wifi сети И \e[31mБЕЗ VPN!\e[39m)" | |
echo -e "http://`curl ifconfig.me`:9000 (если установил на какой-нибудь хостинг)" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment