ECE - bash install error - docker.io/library/de - not found

Hi,
Im trying to install ECE on my virtual machin by following the prerequise for CentOS7 and own registry installation mode.

I make the installation on the VM from scratch, I didn't encountered error during the prerequisite configuration, and i get this Error when I execute the bash install script.

[elastic@localhost log]$ bash <(curl -fsSL https://download.elastic.co/cloud/elastic-cloud-enterprise.sh) install
Unable to find image 'de:latest' locally
Pulling repository docker.io/library/de
docker: Error: image library/de not found.
See 'docker run --help'.

[elastic@localhost log]$ sudo cat /var/log/messages | grep docker
Jun  5 09:14:22 localhost docker: time="2018-06-05T09:14:22.908432445+02:00" level=error msg="Handler for POST /v1.23/containers/create returned error: No such image: de:latest"
Jun  5 09:14:24 localhost docker: time="2018-06-05T09:14:24.247328861+02:00" level=error msg="Attempting next endpoint for pull after error: unauthorized: authentication required"
Jun  5 09:14:24 localhost docker: time="2018-06-05T09:14:24.664265423+02:00" level=error msg="Not continuing with pull after error: Error: image library/de not found"
  1. "Handler for POST /v1.23/containers/create returned error: No such image: de:latest"
    I don't understand why docker does not find the images I pulled before executing the bash

    docker pull docker.elastic.co/cloud-enterprise/elastic-cloud-enterprise:1.1.3
    docker pull docker.elastic.co/cloud-assets/elasticsearch:6.1.3-0
    docker pull docker.elastic.co/cloud-assets/kibana:6.1.3-0

    docker save -o ece.1.1.3.tar docker.elastic.co/cloud-enterprise/elastic-cloud-enterprise:1.1.3
    docker save -o es.6.1.3-0.tar docker.elastic.co/cloud-assets/elasticsearch:6.1.3-0
    docker save -o kibana.6.1.3-0.tar docker.elastic.co/cloud-assets/kibana:6.1.3-0

    docker load < FILE_PATH/ece.1.1.3.tar
    docker load < FILE_PATH/es.6.1.3-0.tar
    docker load < FILE_PATH/kibana.6.1.3-0.tar

  2. "Attempting next endpoint for pull after error: unauthorized: authentication required"
    I don't understand what authentication is required by docker, and why he is trying to find 'docker.io/library/de:latest'

Please if any one have an idea,

Hi Dimitry,
can you please run the script with trace flag? (ie bash -x <(curl -fsSL https://download.elastic.co/cloud/elastic-cloud-enterprise.sh) install) Check the line that starts with HOST_STORAGE_PATH=. What is the variable assigned to?

Hi Yuri, thanks for your interres , Here is the result

HOST_STORAGE_PATH=/mnt/data/elastic

It looks correct. Try to search for keyword error.

 GENERAL_ERROR_EXIT_CODE=1
+ UNKNOWN_COMMAND_EXIT_CODE=2
+ INVALID_ARGUMENT_EXIT_CODE=3
+ NON_VALID_USER_UID_EXIT_CODE=4
+ PRECONDITION_NOT_MET_EXIT_CODE=5

+ docker -H unix:///var/run/docker.sock run --env 'RUNNER_ENVIRONMENT_METADATA_JSON={}' --env COORDINATOR_HOST= --env HOST_DOCKER_HOST=/var/run/docker.sock --env HOST_STORAGE_PATH=/mnt/data/elastic --env HOST_STORAGE_DEVICE_PATH=Sys. de fichiers /dev/mapper/cl-root --env CLOUD_ENTERPRISE_VERSION=1.1.3 --env ENABLE_DEBUG_LOGGING=false --env DOCKER_REGISTRY=docker.elastic.co --env ECE_DOCKER_REPOSITORY=cloud-enterprise --env RUNNER_ID= --env RUNNER_ROLES= --env RUNNER_ROLES_TOKEN= --env HOST_IP=192.168.10.209 --env AVAILABILITY_ZONE= --env CAPACITY= --env ROLE=bootstrap-initiator --env UID=1000 --env GID=1000 --env MEMORY_SETTINGS= --env CONFIG_FILE= --env FORCE_INSTALL=false --env HOST_PREREQ_FAILED=false --env ECE_TIMEOUT_FACTOR=1.0 -p 20000:20000 -v /var/run/docker.sock:/run/docker.sock -v /mnt/data/elastic:/mnt/data/elastic --name elastic-cloud-enterprise-installer-1.1.3 --rm -i --tty docker.elastic.co/cloud-enterprise/elastic-cloud-enterprise:1.1.3 elastic-cloud-enterprise-installer
Unable to find image 'de:latest' locally
Pulling repository docker.io/library/de
docker: Error: image library/de not found.
See 'docker run --help'.
[elastic@localhost log]$ bash -x <(curl -fsSL https://download.elastic.co/cloud/elastic-cloud-enterprise.sh) install
+ set -e
+ CLOUD_ENTERPRISE_VERSION=1.1.3
+ DOCKER_REGISTRY=docker.elastic.co
+ ECE_DOCKER_REPOSITORY=cloud-enterprise
+ HOST_STORAGE_PATH=/mnt/data/elastic
+ HOST_DOCKER_HOST=/var/run/docker.sock
+ YELLOW='\033[0;33m'
+ RED='\033[0;31m'
+ NC='\033[0m'
+ GENERAL_ERROR_EXIT_CODE=1
+ UNKNOWN_COMMAND_EXIT_CODE=2
+ INVALID_ARGUMENT_EXIT_CODE=3
+ NON_VALID_USER_UID_EXIT_CODE=4
+ PRECONDITION_NOT_MET_EXIT_CODE=5
+ FORCE_INSTALL=false
+ HOST_PREREQ_FAILED=false
+ ENABLE_DEBUG_LOGGING=false
+ OVERWRITE_EXISTING_IMAGE=false
+ TIMEOUT_FACTOR=1.0
+ COMMAND=
+ COMMAND=help
+ '[' 1 -gt 0 ']'
+ COMMAND=install
+ case $COMMAND in
+ shift
+ main
+ setArgumentWithFilter HOST_DOCKER_HOST HOST_DOCKER_HOST /var/run/docker.sock
+ local _value=/var/run/docker.sock
+ [[ /var/run/docker.sock == *\u\n\i\x\:\/\/* ]]
+ setArgument HOST_DOCKER_HOST HOST_DOCKER_HOST /var/run/docker.sock
+ [[ /var/run/docker.sock == --* ]]
+ [[ -z /var/run/docker.sock ]]
+ local __resultvar=HOST_DOCKER_HOST
+ eval 'HOST_DOCKER_HOST='\''/var/run/docker.sock'\'''
++ HOST_DOCKER_HOST=/var/run/docker.sock
+ '[' install == install ']'
+ parseInstallArguments
+ '[' '' '!=' '' ']'
+ verifyHostPreconditions
+ validateDockerSocket
+ '[' '!' -S /var/run/docker.sock ']'
+ validateRunningUserUID
++ id -ru
+ local uuid=1000
++ id -rg
+ local guid=1000
+ [[ 1000 -lt 1000 ]]
+ [[ 1000 -lt 1000 ]]
+ verifyFirewalldPrecondition
+ hash systemctl
++ systemctl is-active firewalld
+ local is_active=unknown
+ [[ unknown == \a\c\t\i\v\e ]]
+ createAndValidateHostStoragePath
++ id -u
+ uid=1000
++ id -g
+ gid=1000
+ [[ ! -e /mnt/data/elastic ]]
+ [[ ! -r /mnt/data/elastic ]]
+ [[ ! -w /mnt/data/elastic ]]
++ df --output=source /mnt/data/elastic
++ grep -v Filesystem
+ export 'HOST_STORAGE_DEVICE_PATH=Sys. de fichiers
/dev/mapper/cl-root'
+ HOST_STORAGE_DEVICE_PATH='Sys. de fichiers
/dev/mapper/cl-root'
+ defineHostIp
+ local reason=
+ '[' -z ']'
+ type ip
++ ip route show default
++ awk '/default/ {print $5}'
+ DEVICE=enp0s3
+ '[' '!' -z enp0s3 ']'
++ ip -4 addr show enp0s3
++ grep -Po 'inet \K[\d.]+'
+ HOST_IP=192.168.10.209
+ '[' -z 192.168.10.209 ']'
+ '[' false == true ']'
+ runBootstrapInitiatorContainer
+ DOCKER_TTY=
+ '[' -t 0 ']'
+ DOCKER_TTY=--tty
+ '[' -n '' ']'
++ id -u
++ id -g
+ docker -H unix:///var/run/docker.sock run --env 'RUNNER_ENVIRONMENT_METADATA_JSON={}' --env COORDINATOR_HOST= --env HOST_DOCKER_HOST=/var/run/docker.sock --env HOST_STORAGE_PATH=/mnt/data/elastic --env HOST_STORAGE_DEVICE_PATH=Sys. de fichiers /dev/mapper/cl-root --env CLOUD_ENTERPRISE_VERSION=1.1.3 --env ENABLE_DEBUG_LOGGING=false --env DOCKER_REGISTRY=docker.elastic.co --env ECE_DOCKER_REPOSITORY=cloud-enterprise --env RUNNER_ID= --env RUNNER_ROLES= --env RUNNER_ROLES_TOKEN= --env HOST_IP=192.168.10.209 --env AVAILABILITY_ZONE= --env CAPACITY= --env ROLE=bootstrap-initiator --env UID=1000 --env GID=1000 --env MEMORY_SETTINGS= --env CONFIG_FILE= --env FORCE_INSTALL=false --env HOST_PREREQ_FAILED=false --env ECE_TIMEOUT_FACTOR=1.0 -p 20000:20000 -v /var/run/docker.sock:/run/docker.sock -v /mnt/data/elastic:/mnt/data/elastic --name elastic-cloud-enterprise-installer-1.1.3 --rm -i --tty docker.elastic.co/cloud-enterprise/elastic-cloud-enterprise:1.1.3 elastic-cloud-enterprise-installer
Unable to find image 'de:latest' locally
Pulling repository docker.io/library/de
docker: Error: image library/de not found.
See 'docker run --help'.

that's the problem/

Hmm, what this mean ?

Is there some link whit this result ?

[elastic@localhost log]$ cat /proc/sys/fs/may_detach_mounts
cat: /proc/sys/fs/may_detach_mounts: Aucun fichier ou dossier de ce type

Yes, I think so
we use $(df --output=source ${HOST_STORAGE_PATH} | grep -v Filesystem) to get the variable value and it seems that df returns error which the script does not handle correctly.

[elastic@localhost log]$ (df --output=source ${HOST_STORAGE_PATH} | grep -v Filesystem)
Sys. de fichiers
devtmpfs
tmpfs
tmpfs
tmpfs
/dev/mapper/cl-root
/dev/mapper/cl-home
/dev/sda1
tmpfs

I folowed this step from the instruction update configuration setting,

  • Verify that fs.may_detach_mounts is enabled:

cat /proc/sys/fs/may_detach_mounts
If the output of this command is not 1, you must enable the setting in order for Docker to cleanly remove containers:

  • Update the /etc/sysctl.conf file to include this line:

fs.may_detach_mounts = 1

But the result din't changed

Oh, i think it's a bug in the script. It does not support localized messages. So it expects Filesystem instead of Sys. de fichiers.

How I can verrify it by my self ?

You can download the script and modify it a little bit:
replace line 753
export HOST_STORAGE_DEVICE_PATH=$(df --output=source ${HOST_STORAGE_PATH} | grep -v Filesystem)
by
export HOST_STORAGE_DEVICE_PATH=$(df --output=source ${HOST_STORAGE_PATH} | grep -v "Sys. de fichiers")
and run the script

Good, it seem its was that !
That also mean I need to Install CentOs 7 in english for avoid further error i guess

Now I have error with memory requirement but its because dont have the required ressources.

Thanks for your support.

1 Like

Thanks for helping me troubleshoot the issue! I created a ticket to address the bug.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.