mirror of
https://github.com/prometheus/node_exporter.git
synced 2025-08-20 18:33:52 -07:00
multi arch docker build
This commit is contained in:
parent
0f76c5f287
commit
87ccda9a31
15
Dockerfile.multiarch
Normal file
15
Dockerfile.multiarch
Normal file
|
@ -0,0 +1,15 @@
|
|||
FROM quay.io/prometheus/busybox:latest
|
||||
|
||||
ARG TARGETPLATFORM
|
||||
ARG BUILDPLATFORM
|
||||
ARG TARGETOS
|
||||
ARG TARGETARCH
|
||||
|
||||
LABEL maintainer="The Prometheus Authors <prometheus-developers@googlegroups.com>"
|
||||
|
||||
# Copy the correct binary based on target architecture
|
||||
COPY .build/${TARGETOS}-${TARGETARCH}/node_exporter /bin/node_exporter
|
||||
|
||||
EXPOSE 9100
|
||||
USER nobody
|
||||
ENTRYPOINT [ "/bin/node_exporter" ]
|
47
build-multiarch.sh
Executable file
47
build-multiarch.sh
Executable file
|
@ -0,0 +1,47 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
echo "Building multi-architecture node_exporter with corrected approach..."
|
||||
|
||||
# Create build directory
|
||||
mkdir -p .build
|
||||
|
||||
# Build for Linux AMD64 using local cross-compilation
|
||||
echo "Building for linux/amd64..."
|
||||
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o .build/linux-amd64/node_exporter .
|
||||
|
||||
# Build for Linux ARM64 using local cross-compilation
|
||||
echo "Building for linux/arm64..."
|
||||
GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -o .build/linux-arm64/node_exporter .
|
||||
|
||||
# Create and use a new builder instance for multi-architecture builds
|
||||
echo "Setting up Docker Buildx..."
|
||||
docker buildx create --name multiarch-builder --use || true
|
||||
|
||||
# Build multi-architecture image using buildx with the corrected Dockerfile
|
||||
echo "Building multi-architecture image with buildx..."
|
||||
docker buildx build \
|
||||
--platform linux/amd64,linux/arm64 \
|
||||
--tag ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com/${AWS_ECR_NAMESPACE}/node-exporter:multiarch \
|
||||
--file Dockerfile.multiarch \
|
||||
--push \
|
||||
.
|
||||
|
||||
echo ""
|
||||
echo "Multi-architecture build completed successfully!"
|
||||
echo ""
|
||||
echo "Generated binaries:"
|
||||
echo " - .build/linux-amd64/node_exporter (Linux AMD64)"
|
||||
echo " - .build/linux-arm64/node_exporter (Linux ARM64)"
|
||||
echo ""
|
||||
echo "Generated multi-architecture Docker image:"
|
||||
echo " - ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com/${AWS_ECR_NAMESPACE}/node-exporter:multiarch (supports both AMD64 and ARM64)"
|
||||
echo ""
|
||||
echo "Architecture verification:"
|
||||
file .build/linux-amd64/node_exporter
|
||||
file .build/linux-arm64/node_exporter
|
||||
echo ""
|
||||
echo "To test the multi-architecture image:"
|
||||
echo " docker pull ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com/${AWS_ECR_NAMESPACE}/node-exporter:multiarch"
|
||||
echo " docker run --rm ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com/${AWS_ECR_NAMESPACE}/node-exporter:multiarch --version"
|
Loading…
Reference in a new issue