30 lines
520 B
Docker
30 lines
520 B
Docker
# syntax=docker/dockerfile:1
|
|
|
|
ARG ALPINE_VERSION=3.19
|
|
|
|
FROM --platform=${BUILDPLATFORM} golang:1.22-alpine${ALPINE_VERSION} AS builder
|
|
|
|
ARG BUILDPLATFORM
|
|
|
|
WORKDIR /build
|
|
|
|
COPY ../../../go.mod go.sum ./
|
|
|
|
RUN go mod download
|
|
|
|
COPY ../../.. .
|
|
|
|
ARG TARGETOS
|
|
ARG TARGETARCH
|
|
|
|
RUN CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build -o yggdrasil ./cmd/yggdrasil
|
|
|
|
FROM alpine:${ALPINE_VERSION} AS runtime
|
|
|
|
WORKDIR /srv
|
|
|
|
RUN apk add --no-cache ca-certificates
|
|
|
|
COPY --from=builder /build/yggdrasil .
|
|
|
|
CMD ["/srv/yggdrasil"]
|