Home > Blockchain >  sh: ./filebeat: not found in Docker container
sh: ./filebeat: not found in Docker container

Time:03-04

Im trying to run filebeat in a docker container with the s6 overlay. When s6 executes or when i manually execute the filebeat binary i get sh: ./filebeat: not found
This is my Dockerfile:

FROM alpine:3.15

ENV AM_I_IN_A_DOCKER_CONTAINER Yes

COPY root/ /
ADD https://github.com/just-containers/s6-overlay/releases/download/v1.21.8.0/s6-overlay-amd64.tar.gz /tmp/
ADD https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.0.0-linux-x86_64.tar.gz /tmp/
ADD requirements.txt /etc/services.d/01_instabot/requirements.txt
ADD src/ /etc/services.d/01_instabot/

RUN chmod  x /usr/local/bin/install.sh
RUN /usr/local/bin/install.sh

#ENTRYPOINT ["/init"]

This is my install.sh:

#!/bin/sh

echo "Unpacking s6 overlay"
gunzip -c /tmp/s6-overlay-amd64.tar.gz | tar -xf - -C /

echo "Creating user"
adduser -D -u 2000 -s /sbin/nologin -D -H botuser
adduser -D -u 2001 -s /sbin/nologin -D -H filebeatuser

echo "Set time"
ln -snf /usr/share/zoneinfo/"$TZ" /etc/localtime && echo "$TZ" > /etc/timezone
apk add --no-cache tzdata

echo "Install filebeat"
gunzip -c /tmp/filebeat-8.0.0-linux-x86_64.tar.gz | \
  tar -xf - -C /etc/services.d/00_filebeat/ --strip-components=1
mv /etc/services.d/00_filebeat/my_filebeat.yml /etc/services.d/00_filebeat/filebeat.yml

echo "Install app dependencies"
apk add --no-cache python3 py3-pip
pip3 install --no-cache-dir -r /etc/services.d/01_instabot/requirements.txt
mv /etc/services.d/01_instabot/settings_docker.py /etc/services.d/01_instabot/settings.py

echo "Cleanup"
rm -rf /tmp/*

If i take a look inside the docker container with the docker run command i see the binary present.

/etc/services.d/00_filebeat # ls
LICENSE.txt             README.md               filebeat                filebeat.yml            module                  run
NOTICE.txt              fields.yml              filebeat.reference.yml  kibana                  modules.d

But when i execute it using ./filebeat i get the not found error.

/etc/services.d/00_filebeat # ./filebeat
sh: ./filebeat: not found

Why is this? And how do i fix it? Is it because of busybox or something?

CodePudding user response:

libc6-compat was missing from my alpine image.

  • Related