Skip to content

Shipped lib.sh sets elasticsearch docker image tag to 1.53.5 resulting in infinite retry #2731

Open
@sammothxc

Description

@sammothxc

Steps To Reproduce

  1. Fresh .vma install (for Proxmox)
  2. Boot up
  3. Continue with startup install script
  4. Try to install Full Text Search

Expected Result

Running docker image for ElasticSearch, and continuing with startup script.

Actual Result

Docker image fails to run with error ✘ elasticsearch Error manifest for docker.elastic.co/elasticsearch/elasticsearch:1.53.5 not found: manifest unknown: manifest unknown which leads to endless loop of "Waiting for ElasticSearch to come online, please don't abort..." and a complete inability to finish the startup script.

Screenshots, Videos, or Pastebins

No response

Additional Context

Digging through the install scripts to find the script fulltextsearch_install in /var/scripts/lib.sh seemed to be the problem. Running it straight from the command line, it prints 1.53.5 (there is no image for 1.53.5).

This is the full script:

# Full text Search
fulltextsearch_install() {
    FULLTEXTSEARCH_DIR="$SCRIPTS"/fulltextsearch
    NEXTCLOUD_INDEX=$(gen_passwd "$SHUF" '[:lower:]')
    ELASTIC_USER_PASSWORD=$(gen_passwd "$SHUF" '[:lower:]')
    FULLTEXTSEARCH_IMAGE_NAME=fulltextsearch_es01
    FULLTEXTSEARCH_SERVICE=nextcloud-fulltext-elasticsearch-worker.service
    # Supports 0-9.0-99.0-9. Max supprted version with this function is 9.99.9. When ES 10.0.0 is out we have a problem.
    # Maybe "10\\.[[:digit:]][[:digit:]]\\.[[:digit:]]" will work?
    FULLTEXTSEARCH_IMAGE_NAME_LATEST_TAG="$(curl -s -m 900 https://www.docker.elastic.co/r/elasticsearch?limit=500 | grep -Eo "[[:digit:]]\\.[[:digit:]][[:digit:]]\\.[[:digit:]]" | sort --version-sort | tail -1)"
    printf "Debug: FULLTEXTSEARCH_IMAGE_NAME_LATEST_TAG=%s\n" "$FULLTEXTSEARCH_IMAGE_NAME_LATEST_TAG"
    # Legacy, changed 2023-09-21
    DOCKER_IMAGE_NAME=es01
    # Legacy, not used at all
    RORDIR=/opt/es/
    OPNSDIR=/opt/opensearch
    nc_fts="ark74/nc_fts"
    opens_fts="opensearchproject/opensearch"
    fts_node="fts_os-node"
}

This is appears to be an outdated script when compared with https://raw.githubusercontent.com/nextcloud/vm/main/lib.sh that DOES work (I found that URL referenced in /var/scripts/fetch_lib.sh github file):

FULLTEXTSEARCH_IMAGE_NAME_LATEST_TAG="$(curl -s -m 900 https://raw.githubusercontent.com/docker-library/official-images/refs/heads/master/library/elasticsearch | grep "Tags:" | head -1 | awk '{print $2}')" followed by echo $FULLTEXTSEARCH_IMAGE_NAME_LATEST_TAG called by the new fulltextsearch_install prints 8.16.5

=========================================

I am not the greatest at understanding bash scripts, so does the Proxmox .vma file just ship with an old version of that script and fetch_lib.sh doesn't update it because it's already there? Or why does it come with a broken script that gets infinitely stuck waiting for a nonexistent version of the docker image to launch if you choose to install Full Text Search?

I am new at both Nextcloud and working with github issues, forgive me if I left something out.

My temporary solution was to ssh into the VM, nano /var/scripts/fulltextsearch/docker-compose.yaml (which is created by this file and replace the $FULLTEXTSEARCH_IMAGE_LATEST_TAG with 8.16.5 then run docker compose up -d that finally pulls an actual existing image version, which allowed the startup script to see it running and continue on.

Build Version

30.0.6

Environment

By downloading the VM

Environment Details

  • OS: TrueNAS SCALE, running on VM following website instructions for TrueNAS scale

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions