# Step 1: Prepare the build environment FROM golang:1.16 AS builder # Define the Metricbeat version as a build argument ARG VERSION # Install Git to clone the repository RUN apt-get update && apt-get install -y git && apt-get clean # Clone the Elastic Beats repository and switch to the specified version WORKDIR /go/src/github.com/elastic/beats RUN git clone https://github.com/elastic/beats.git . && git checkout v${VERSION} # Compile Metricbeat for the s390x architecture RUN GOARCH=s390x go build -o metricbeat ./metricbeat # Step 2: Build the final image FROM ubuntu:24.04 # Set the working directory WORKDIR /usr/share/metricbeat # Copy the Metricbeat binary from the build stage COPY --from=builder /go/src/github.com/elastic/beats/metricbeat . # Add a default metricbeat.yml configuration file (customize as needed) COPY metricbeat.yml /usr/share/metricbeat/metricbeat.yml # Grant necessary permissions to execute Metricbeat RUN chmod +x /usr/share/metricbeat/metricbeat # Define the container's entry point ENTRYPOINT ["/usr/share/metricbeat/metricbeat"]