mirror of
https://github.com/henrygd/beszel.git
synced 2025-12-16 10:16:16 +01:00
35 lines
880 B
Plaintext
35 lines
880 B
Plaintext
FROM --platform=$BUILDPLATFORM golang:alpine AS builder
|
|
|
|
WORKDIR /app
|
|
|
|
COPY go.mod go.sum ./
|
|
# RUN go mod download
|
|
COPY *.go ./
|
|
COPY cmd ./cmd
|
|
COPY internal ./internal
|
|
|
|
# Build
|
|
ARG TARGETOS TARGETARCH
|
|
RUN CGO_ENABLED=0 GOGC=75 GOOS=$TARGETOS GOARCH=$TARGETARCH go build -ldflags "-w -s" -o /agent ./cmd/agent
|
|
|
|
RUN rm -rf /tmp/*
|
|
|
|
# --------------------------
|
|
# Final image: default scratch-based agent
|
|
# --------------------------
|
|
FROM scratch AS default-agent
|
|
COPY --from=builder /agent /agent
|
|
|
|
# this is so we don't need to create the /tmp directory in the scratch container
|
|
COPY --from=builder /tmp /tmp
|
|
|
|
ENTRYPOINT ["/agent"]
|
|
|
|
# --------------------------
|
|
# Final image: GPU-enabled agent with nvidia-smi
|
|
# --------------------------
|
|
FROM nvidia/cuda:12.9.0-base-ubuntu22.04 AS nvidia-agent
|
|
COPY --from=builder /agent /agent
|
|
COPY --from=builder /tmp /tmp
|
|
ENTRYPOINT ["/agent"]
|