logstash icon indicating copy to clipboard operation
logstash copied to clipboard

Logstash docker images from 8.12.0 do not work on arm64

Open rtammekivi opened this issue 1 year ago • 1 comments

Description of the problem including expected versus actual behavior: arm64 containers published in Docker Hub cannot be used on arm64 machines due to statically compiled env2yaml for x86_64 https://hub.docker.com/_/logstash/tags https://github.com/elastic/dockerfiles/blob/8.12/logstash/env2yaml/env2yaml

file env2yaml 
env2yaml: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, Go BuildID=140w3zQetTF9vuXn8SKh/6VTmqmUurR6W4U1d2djn/ygzO-s0DW7lKAPv4StdI/yrDHA-k7UMQhDh1cXjqi, with debug_info, not stripped

Steps to reproduce:

  1. Use an arm64 architecture machine
  2. docker run logstash:8.12.0

rtammekivi avatar Feb 07 '24 09:02 rtammekivi

Good catch! It seems the jobs creating the "logstash:" images are not flexible enough to rebuild the env2yaml for each arch, while the ones created by elastic are:

logstash:8.12.0

❯ docker run -q --platform=linux/arm64 --rm --entrypoint cat logstash:8.12.0 /usr/local/bin/env2yaml > env2yaml && file env2yaml
env2yaml: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, Go BuildID=140w3zQetTF9vuXn8SKh/6VTmqmUurR6W4U1d2djn/ygzO-s0DW7lKAPv4StdI/yrDHA-k7UMQhDh1cXjqi, with debug_info, not stripped

❯ docker run -q --platform=linux/amd64 --rm --entrypoint cat logstash:8.12.0 /usr/local/bin/env2yaml > env2yaml && file env2yaml
env2yaml: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, Go BuildID=140w3zQetTF9vuXn8SKh/6VTmqmUurR6W4U1d2djn/ygzO-s0DW7lKAPv4StdI/yrDHA-k7UMQhDh1cXjqi, with debug_info, not stripped

docker.elastic.co/logstash/logstash:8.12.0

❯ docker run -q --platform=linux/arm64 --rm --entrypoint cat docker.elastic.co/logstash/logstash:8.12.0 /usr/local/bin/env2yaml > env2yaml && file env2yaml
env2yaml: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, Go BuildID=QYY-PtaHFDEDpFjmTufT/PjrWinQ9r2i2vz0aIqwX/QIJ5qqkDzlYatd5vGwbG/5PkcWW24n8AsRkRjSP0z, with debug_info, not stripped

❯ docker run -q --platform=linux/amd64 --rm --entrypoint cat docker.elastic.co/logstash/logstash:8.12.0 /usr/local/bin/env2yaml > env2yaml && file env2yaml
env2yaml: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, Go BuildID=140w3zQetTF9vuXn8SKh/6VTmqmUurR6W4U1d2djn/ygzO-s0DW7lKAPv4StdI/yrDHA-k7UMQhDh1cXjqi, with debug_info, not stripped

jsvd avatar Feb 07 '24 15:02 jsvd