From 10acfb116f76fab116c578602d24d543efbfecb0 Mon Sep 17 00:00:00 2001 From: Domenico Gemoli Date: Thu, 13 Feb 2025 16:07:59 +0100 Subject: [PATCH] feat: add option to install a specific version --- README.md | 8 ++++++++ install.sh | 22 ++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/README.md b/README.md index 5a58163..ffb12fd 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,14 @@ wget https://github.com/espocrm/espocrm-installer/releases/latest/download/insta sudo bash install.sh -y --ssl --letsencrypt --domain=my-espocrm.com --email=email@my-domain.com ``` +You can also specify a particular EspoCRM version to install: + +``` +sudo bash install.sh --version=8.4.2 +``` + +If no version is specified, the latest version will be installed. + ## Run (only for development) ``` diff --git a/install.sh b/install.sh index c0e2dc0..b5a0bb5 100644 --- a/install.sh +++ b/install.sh @@ -63,6 +63,7 @@ declare -A data=( [homeDirectory]="/var/www/espocrm" [action]="main" [backupPath]="SCRIPT_DIRECTORY/espocrm-backup" + [version]="fpm" ) declare -A modes=( @@ -112,6 +113,10 @@ function handleArguments() { data[email]="${value}" ;; + --version) + data[version]="${value}" + ;; + --db-root-password | --dbRootPassword) data[dbRootPassword]="${value}" ;; @@ -827,6 +832,9 @@ function prepareDocker() { mv "./installation-modes/$mode/${data[server]}/docker-compose.yml" "${data[homeDirectory]}/docker-compose.yml" mv "./installation-modes/$mode/${data[server]}"/* "${data[homeDirectory]}/data/${data[server]}" + # Update EspoCRM version in docker-compose.yml + updateEspoCrmVersion + # Copy helper commands find "./commands" -type f | while read file; do fileName=$(basename "$file") @@ -842,6 +850,20 @@ function prepareDocker() { fi } +function updateEspoCrmVersion() { + local dockerComposeFile="${data[homeDirectory]}/docker-compose.yml" + if [ -f "$dockerComposeFile" ]; then + # If version is "fpm" (default), use it as is + # Otherwise append "-fpm" to the version number + if [ "${data[version]}" = "fpm" ]; then + local imageVersion="fpm" + else + local imageVersion="${data[version]}-fpm" + fi + sed -i "s|espocrm/espocrm:fpm|espocrm/espocrm:${imageVersion}|g" "$dockerComposeFile" + fi +} + runDockerDatabase() { docker compose -f "${data[homeDirectory]}/docker-compose.yml" up -d espocrm-db || { restoreBackup