Estoy tratando de configurar la Elástica del Agente en un contenedor docker ejecutando otro servicio. El contenedor se basa en Alpine Linux, sin embargo, que no se puede ejecutar la elástica-agente de comandos después de descargar y extraer el agente : se queja acerca de un "no se encuentra el archivo, mientras que el archivo existe realmente!
He aquí una mínima reproductible ejemplo
docker run --rm -it alpine sh
# cd /opt
# wget https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-7.14.2-linux-x86_64.tar.gz
# tar xvf elastic-agent-7.14.2-linux-x86_64.tar.gz
# cd elastic-agent-7.14.2-linux-x86_64/
# ./elastic-agent
sh: ./elastic-agent: not found
# ls -la
total 8452
drwxr-xr-x 3 root root 4096 Nov 18 17:38 .
drwxr-xr-x 1 root root 4096 Nov 18 17:38 ..
-rw-r--r-- 1 root root 41 Sep 15 17:00 .build_hash.txt
-rw-r--r-- 1 root root 41 Sep 15 17:00 .elastic-agent.active.commit
-rw-r--r-- 1 root root 13675 Sep 15 16:54 LICENSE.txt
-rw-r--r-- 1 root root 8586842 Sep 15 16:54 NOTICE.txt
-rw-r--r-- 1 root root 866 Sep 15 17:00 README.md
drwxr-xr-x 3 root root 4096 Nov 18 17:38 data
lrwxrwxrwx 1 root root 39 Nov 18 17:38 elastic-agent -> data/elastic-agent-574c21/elastic-agent
-rw-r--r-- 1 root root 9020 Sep 15 16:55 elastic-agent.reference.yml
-rw------- 1 root root 9017 Sep 15 16:55 elastic-agent.yml
# ./data/elastic-agent-574c21/elastic-agent
sh: ./data/elastic-agent-574c21/elastic-agent: not found
Yo estoy corriendo en un x86_64 host como se puede ver la versión del kernel o paquete de los repositorios:
# uname -a
Linux 59ae07b0dca8 5.10.47-linuxkit #1 SMP Sat Jul 3 21:51:47 UTC 2021 x86_64 Linux
# apk update
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/community/x86_64/APKINDEX.tar.gz
v3.14.3-14-g9234faeb0d [https://dl-cdn.alpinelinux.org/alpine/v3.14/main]
v3.14.3-12-g13e0706e2c [https://dl-cdn.alpinelinux.org/alpine/v3.14/community]
OK: 14942 distinct packages available
En que se parece el binario puede vincular a las bibliotecas correctamente:
# ldd ./data/elastic-agent-574c21/elastic-agent
/lib64/ld-linux-x86-64.so.2 (0x7f1868c2f000)
libpthread.so.0 => /lib64/ld-linux-x86-64.so.2 (0x7f1868c2f000)
libdl.so.2 => /lib64/ld-linux-x86-64.so.2 (0x7f1868c2f000)
libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7f1868c2f000)
También tiene los permisos para ejecutar
# ls -la /usr/local/bin/elastic-agent-7.14.2-linux-x86_64/data/elastic-agent-574c21/
total 57244
drwxr-xr-x 3 root root 4096 Nov 18 17:38 .
drwxr-xr-x 3 root root 4096 Nov 18 17:38 ..
drwxr-xr-x 2 root root 4096 Nov 18 17:38 downloads
-rwxr-xr-x 1 root root 58603536 Sep 15 17:00 elastic-agent
strace
no parece ayudar a ni
# strace -f ./elastic-agent
execve("./elastic-agent", ["./elastic-agent"], 0x7fff9e17bee8 /* 7 vars */) = -1 ENOENT (No such file or directory)
strace: exec: No such file or directory
+++ exited with 1 +++
Me estoy perdiendo algo? Podría Alpino evitar un binario de partida bajo ciertas condiciones?
Gracias por su ayuda!