33 lines
1 KiB
Docker
33 lines
1 KiB
Docker
# 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"]
|