mirror of
https://github.com/bloomberg/goldpinger.git
synced 2026-02-14 18:09:50 +00:00
34 lines
952 B
Docker
34 lines
952 B
Docker
ARG WINDOWS_BASE_IMAGE=mcr.microsoft.com/windows/nanoserver:ltcs2022
|
|
|
|
FROM --platform=$BUILDPLATFORM golang:1.21 as builder
|
|
ARG TARGETARCH
|
|
ARG TARGETOS
|
|
|
|
# Get dependencies
|
|
WORKDIR /w
|
|
COPY go.mod go.sum ./
|
|
RUN go mod download
|
|
|
|
# Build goldpinger
|
|
COPY . ./
|
|
RUN GOOS=$TARGETOS GOARCH=$TARGETARCH make bin/goldpinger
|
|
# Create vendor folder
|
|
RUN go mod vendor
|
|
|
|
# Build the asset container, copy over goldpinger
|
|
FROM gcr.io/distroless/static:nonroot as simple
|
|
COPY --from=builder /w/bin/goldpinger /goldpinger
|
|
COPY ./static /static
|
|
COPY ./config /config
|
|
ENTRYPOINT ["/goldpinger", "--static-file-path", "/static"]
|
|
|
|
FROM $WINDOWS_BASE_IMAGE AS windows
|
|
COPY --from=builder /w/bin/goldpinger /goldpinger.exe
|
|
COPY ./static /static
|
|
COPY ./config /config
|
|
ENTRYPOINT ["/goldpinger.exe", "--static-file-path=/static"]
|
|
|
|
# For vendor builds, use the simple build and add the vendor'd files
|
|
FROM simple as vendor
|
|
COPY --from=builder /w/vendor /goldpinger-vendor-sources
|