# syntax=docker/dockerfile:1 FROM node:22.14.0-alpine AS ui-builder RUN apk --no-cache add make WORKDIR /app COPY . . RUN make ui FROM golang:1.27.1-bookworm AS app-builder RUN apt-get update \ && apt-get install -y --no-install-recommends ca-certificates gcc \ && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY . . COPY --from=ui-builder /app/ui/dist /app/ui/dist RUN cat /etc/ssl/certs/ca-certificates.crt /app/dev/pebble/certs/cert.pem > /app/ca-certificates.crt RUN --mount=type=cache,target=/root/go/pkg/mod \ go mod download ARG TARGETOS ARG TARGETARCH RUN --mount=type=cache,target=/root/.cache/go-build \ GOARM=7 GOAMD64=v3 \ go build -race -tags 'osusergo netgo no_mocks' \ -ldflags "-s -w -extldflags -static -X 'go.miragespace.co/specter/cmd/client.devApexOverride=dev.con.nect.sh' -X go.miragespace.co/specter/spec.BuildTime=`date +%s`" \ -o bin/specter . FROM --platform=$BUILDPLATFORM debian:bookworm-slim WORKDIR /app COPY --from=app-builder /app/ca-certificates.crt /etc/ssl/certs/ COPY --from=app-builder /app/bin/specter /app/specter ENTRYPOINT ["/app/specter"]