conduit/Dockerfile-BuildKit
2025-09-20 18:29:27 -04:00

30 lines
842 B
Plaintext

# Certificates & Timezones
FROM alpine AS alpine
RUN apk update && apk add --no-cache ca-certificates tzdata
# Build Image
FROM --platform=$BUILDPLATFORM golang:1.24 AS build
# Create Package Directory
WORKDIR /src
RUN mkdir -p /opt/conduit
# Cache Dependencies & Compile
ARG TARGETOS
ARG TARGETARCH
RUN --mount=target=. \
--mount=type=cache,target=/root/.cache/go-build \
--mount=type=cache,target=/go/pkg \
GOOS=$TARGETOS GOARCH=$TARGETARCH go build \
-ldflags "-X reichard.io/conduit/config.version=`git describe --tags`" \
-o /opt/conduit/conduit
# Create Image
FROM busybox:1.36
COPY --from=alpine /etc/ssl/certs /etc/ssl/certs
COPY --from=alpine /usr/share/zoneinfo /usr/share/zoneinfo
COPY --from=build /opt/conduit /opt/conduit
WORKDIR /opt/conduit
EXPOSE 8080
ENTRYPOINT ["/opt/conduit/conduit", "serve"]