108 lines
2.9 KiB
Bash
Executable File
108 lines
2.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Source
|
|
# Docker - Install using the repository
|
|
# https://docs.docker.com/install/linux/docker-ce/ubuntu/
|
|
#
|
|
# Onlyoffice - Docker
|
|
# https://helpcenter.onlyoffice.com/server/docker/document/docker-installation.aspx
|
|
|
|
toolName="onlyoffice"
|
|
dockerDeps="apt-transport-https ca-certificates curl gnupg-agent software-properties-common"
|
|
dockerGpgKeyUrl="https://download.docker.com/linux/ubuntu/gpg"
|
|
dockerRepoUrl="https://download.docker.com/linux/ubuntu"
|
|
dockerPackages="docker-ce docker-ce-cli containerd.io"
|
|
dockerDns1="192.168.23.20"
|
|
dockerDns2="46.182.19.48"
|
|
dockerDnsEntry="DOCKER_OPTS=\"--dns $dockerDns1 --dns $dockerDns2\""
|
|
dockerDefaultConf="/etc/default/docker"
|
|
onlyOfficePort="8026"
|
|
|
|
step_1_info() { echo "Install docker dependencies"; }
|
|
step_1_alias() { ALIAS="install"; }
|
|
step_1() {
|
|
local aptOption=
|
|
exe apt update
|
|
if [ $QUIET -ne 0 ] ; then
|
|
aptOption="-y"
|
|
else
|
|
aptOption=""
|
|
fi
|
|
exe apt install $dockerDeps $aptOption
|
|
endReturn -o $? "Docker dependencies installation failed"
|
|
}
|
|
|
|
step_2_info() { echo "Install docker repository"; }
|
|
step_2() {
|
|
# Add official docker GPG key
|
|
exep "curl -fsSL ${dockerGpgKeyUrl} | sudo apt-key add -"
|
|
|
|
# Add stable repository
|
|
exe add-apt-repository "deb [arch=amd64] ${dockerRepoUrl} $(lsb_release -cs) stable"
|
|
endReturn -o $? "Failed to add Docker repository"
|
|
exe apt update
|
|
endReturn -o $? "Docker repository not available"
|
|
}
|
|
|
|
step_3_info() { echo "Install latest docker version"; }
|
|
step_3() {
|
|
# Install the latest version
|
|
if [ $QUIET -ne 0 ] ; then
|
|
aptOption="-y"
|
|
else
|
|
aptOption=""
|
|
fi
|
|
exe apt install $dockerPackages $aptOption
|
|
|
|
echo " [I] You may test the installation by running:"
|
|
echo " sudo docker run hello-world"
|
|
}
|
|
|
|
step_4_info() { echo "Replace Docker DNS entry"; }
|
|
step_4() {
|
|
exe sed -i "s/\(^#DOCKER_OPTS=.*\)$/#\1\n${dockerDnsEntry}/" "$dockerDefaultConf"
|
|
exep "grep \"${dockerDns1}\" \"$dockerDefaultConf\" >>/dev/null"
|
|
if [ $? -ne 0 ] ; then
|
|
echoerr " [W] Docker dns entry could not be changed"
|
|
fi
|
|
}
|
|
|
|
step_5_info() { echo "Install onlyoffice docker container"; }
|
|
step_5_alias() { ALIAS="onlyoffice"; }
|
|
step_5() {
|
|
exe docker run -i -t -d -p ${onlyOfficePort}:80 --restart=always onlyoffice/documentserver
|
|
}
|
|
|
|
step_10_info() { echo "List running Docker container"; }
|
|
step_10_alias() { ALIAS="ls"; }
|
|
step_10() {
|
|
exe docker container ls
|
|
echo
|
|
echo " [I] To stop a container run:"
|
|
echo " docker stop [CONTAINER ID]"
|
|
echo " e.g.: docker stop 70f1c5c81be2"
|
|
}
|
|
|
|
step_100_info() { echo "Uninstall docker"; }
|
|
step_100_alias() { ALIAS="uninstall"; }
|
|
step_100() {
|
|
exe apt-get purge docker-ce
|
|
}
|
|
|
|
step_102_info() { echo "Purge images, containers, volumes, or customized configuration files"; }
|
|
step_102_alias() { ALIAS="purge"; }
|
|
step_102() {
|
|
exe read -p "Are you sure y/[n]? " answer
|
|
case $answer in
|
|
yY)
|
|
exe rm -rf /var/lib/docker
|
|
;;
|
|
*)
|
|
return 0
|
|
;;
|
|
esac
|
|
}
|
|
|
|
VERSION_SEQREV=7
|
|
. sequencer.sh
|