mirror of
https://github.com/pixelfed/pixelfed.git
synced 2024-12-22 13:03:16 +00:00
Merge pull request #5002 from jippi/docker-check-requirements
Docker: Script to check requirements
This commit is contained in:
commit
dfab7e945a
1 changed files with 126 additions and 0 deletions
126
docker/check-requirements
Executable file
126
docker/check-requirements
Executable file
|
@ -0,0 +1,126 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e -o errexit -o nounset -o pipefail
|
||||
|
||||
#
|
||||
# Colors
|
||||
#
|
||||
|
||||
declare -r RED="\e[31m"
|
||||
declare -r GREEN="\e[32m"
|
||||
declare -r BLUE="\e[34m"
|
||||
declare -r NO_COLOR="\e[0m"
|
||||
|
||||
#
|
||||
# Helper functions
|
||||
#
|
||||
|
||||
function highlight() {
|
||||
local reset="${2:-$NO_COLOR}"
|
||||
echo "${BLUE}$1${reset}"
|
||||
}
|
||||
|
||||
function action_start() {
|
||||
echo -en "⚙️ $1: "
|
||||
}
|
||||
|
||||
function action_ok() {
|
||||
echo -e "\n\t✅ ${GREEN}${*}${NO_COLOR}\n"
|
||||
}
|
||||
|
||||
function action_error() {
|
||||
echo -e "\n\t❌ ${RED}${*}${NO_COLOR}" >&2
|
||||
}
|
||||
|
||||
function action_error_exit() {
|
||||
action_error "${*}\n\n${RED}Aborting!${NO_COLOR}"
|
||||
|
||||
exit 1
|
||||
}
|
||||
|
||||
#
|
||||
# Configuration
|
||||
#
|
||||
|
||||
declare -r min_docker_compose_version_arr=(2 17)
|
||||
min_docker_compose_version=$(
|
||||
IFS=.
|
||||
echo "${min_docker_compose_version[*]}"
|
||||
)
|
||||
|
||||
#
|
||||
# Help text
|
||||
#
|
||||
|
||||
DOCKER_HELP="
|
||||
|
||||
\tWe recommend installing Docker (and Compose) directly from Docker.com instead of your Operation System package registry.
|
||||
\tPlease see $(highlight "https://docs.docker.com/engine/install/")${RED} for information on how to install Docker on your system.
|
||||
|
||||
\tA convinience script is provided by Docker to automate the installation that should work on all supported platforms:
|
||||
|
||||
\t\t ${GREEN}\$${BLUE} curl -fsSL https://get.docker.com -o get-docker.sh
|
||||
\t\t ${GREEN}\$${BLUE} sudo sh ./get-docker.sh
|
||||
${RED}
|
||||
\tPlease see $(highlight "https://docs.docker.com/engine/install/ubuntu/#install-using-the-convenience-script")${RED} for more information
|
||||
|
||||
\tAlternatively, you can update *JUST* the Compose plugin by following the guide here:
|
||||
\t$(highlight "https://docs.docker.com/compose/install/linux/#install-the-plugin-manually")${RED}
|
||||
|
||||
\tLearn more about Docker compose release history here:
|
||||
\t$(highlight "https://docs.docker.com/compose/release-notes/")${RED}${NO_COLOR}"
|
||||
declare -r DOCKER_HELP
|
||||
|
||||
#
|
||||
# System checks
|
||||
#
|
||||
|
||||
echo -e "👋 ${GREEN}Hello!"
|
||||
echo -e ""
|
||||
echo -e "This script will check your system for the minimum requirements outlined in the Pixelfed Docker install guide"
|
||||
echo -e "You can find the guide here ${BLUE}https://jippi.github.io/pixelfed-docs-next/pr-preview/pr-1/running-pixelfed/docker/prerequisites.html#software${GREEN}."
|
||||
echo -e "${NO_COLOR}"
|
||||
|
||||
# git installed?
|
||||
action_start "Checking if [$(highlight "git")] command is available"
|
||||
command -v git >/dev/null 2>&1 || {
|
||||
action_error_exit "Pixelfed require the 'git' command, but it's not installed"
|
||||
}
|
||||
action_ok "git is installed"
|
||||
|
||||
# docker installed?
|
||||
action_start "Checking if [$(highlight "docker")] command is available"
|
||||
command -v docker >/dev/null 2>&1 || {
|
||||
action_error_exit "Pixelfed require the 'docker' command, but it's not installed. ${DOCKER_HELP}"
|
||||
}
|
||||
action_ok "docker is installed"
|
||||
|
||||
# docker compose installed?
|
||||
action_start "Checking if [$(highlight "docker compose")] command is available"
|
||||
docker compose >/dev/null 2>&1 || {
|
||||
action_error_exit "Pixelfed require the 'docker compose' command, but it's not installed. ${DOCKER_HELP}"
|
||||
}
|
||||
action_ok "docker compose is installed"
|
||||
|
||||
# docker compose version is acceptable?
|
||||
compose_version=$(docker compose version --short)
|
||||
|
||||
declare -a compose_version_arr
|
||||
IFS="." read -r -a compose_version_arr <<<"$compose_version"
|
||||
|
||||
## major version
|
||||
action_start "Checking if [$(highlight "docker compose version")] major version (${min_docker_compose_version_arr[0]}) is acceptable"
|
||||
[[ ${compose_version_arr[0]} -eq ${min_docker_compose_version_arr[0]} ]] || {
|
||||
action_error_exit "Pixelfed require minimum Docker Compose major version ${min_docker_compose_version_arr[0]}.x.x - found ${compose_version}.${DOCKER_HELP}"
|
||||
}
|
||||
action_ok "You're using major version ${compose_version_arr[0]}"
|
||||
|
||||
## minor version
|
||||
action_start "Checking if [$(highlight "docker compose version")] minor version (${min_docker_compose_version_arr[1]}) is acceptable"
|
||||
[[ ${compose_version_arr[1]} -ge ${min_docker_compose_version_arr[1]} ]] || {
|
||||
action_error_exit "Pixelfed require minimum Docker Compose minor version ${min_docker_compose_version_arr[0]}.${min_docker_compose_version_arr[1]} - found ${compose_version}.${DOCKER_HELP}"
|
||||
}
|
||||
action_ok "You're using minor version ${compose_version_arr[1]}"
|
||||
|
||||
# Yay, everything is fine
|
||||
echo -e "🎉 ${GREEN}All checks passed, you should be ready to run Pixelfed on this server!${NO_COLOR}"
|
Loading…
Reference in a new issue