asdf
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
# Multi-stage build using official Go image
|
||||
FROM harbor.mws-team.ru/docker.io/library/ubuntu:22.04 AS builder
|
||||
|
||||
# Add Ceph Reef repository
|
||||
RUN apt-get update && apt-get install -y \
|
||||
wget \
|
||||
gnupg \
|
||||
gcc \
|
||||
pkg-config \
|
||||
&& wget -q -O- 'https://download.ceph.com/keys/release.asc' | apt-key add - \
|
||||
&& echo "deb https://download.ceph.com/debian-reef/ jammy main" > /etc/apt/sources.list.d/ceph.list
|
||||
|
||||
# Install Ceph Reef development libraries
|
||||
RUN apt-get update && apt-get install -y \
|
||||
librbd-dev \
|
||||
librados-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Go
|
||||
ENV GO_VERSION=1.25.5
|
||||
RUN wget https://go.dev/dl/go${GO_VERSION}.linux-amd64.tar.gz \
|
||||
&& tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz \
|
||||
&& rm go${GO_VERSION}.linux-amd64.tar.gz
|
||||
|
||||
# Set Go environment variables
|
||||
ENV PATH=$PATH:/usr/local/go/bin
|
||||
ENV GOPATH=/go
|
||||
ENV PATH=$PATH:$GOPATH/bin
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Copy go mod files
|
||||
COPY go.mod go.sum ./
|
||||
RUN go mod download
|
||||
|
||||
# Copy source code
|
||||
COPY . .
|
||||
|
||||
# Build the application
|
||||
RUN CGO_ENABLED=1 GOOS=linux go build -o rbd-exporter .
|
||||
|
||||
|
||||
# Final stage with Ceph Reef runtime libraries
|
||||
FROM harbor.mws-team.ru/docker.io/library/ubuntu:22.04 AS final
|
||||
|
||||
# Add Ceph Reef repository to runtime stage too
|
||||
RUN apt-get update && apt-get install -y \
|
||||
wget \
|
||||
gnupg \
|
||||
lsb-release \
|
||||
ca-certificates \
|
||||
&& wget -q -O- 'https://download.ceph.com/keys/release.asc' | gpg --dearmor -o /etc/apt/trusted.gpg.d/ceph.gpg \
|
||||
&& echo "deb https://download.ceph.com/debian-reef/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/ceph.list
|
||||
|
||||
# Install Ceph Reef runtime libraries
|
||||
RUN apt-get update && apt-get install -y \
|
||||
librbd-dev \
|
||||
librados-dev \
|
||||
ceph-common \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
WORKDIR /rbd-exporter
|
||||
|
||||
# Copy the binary from builder stage
|
||||
COPY --from=builder /app/rbd-exporter .
|
||||
|
||||
# Make binary executable
|
||||
RUN chmod +x ./rbd-exporter
|
||||
|
||||
EXPOSE 9040
|
||||
|
||||
CMD ["./rbd-exporter"]
|
||||
Reference in New Issue
Block a user