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-alpine AS app-builder RUN apk --no-cache add ca-certificates git WORKDIR /app COPY . . COPY --from=ui-builder /app/ui/dist /app/ui/dist ARG GIT_HASH=head RUN CGO_ENABLED=0 GOARM=7 GOAMD64=v3 \ go build -tags 'osusergo netgo no_mocks' -buildvcs=false \ -ldflags "-s -w -extldflags -static -X go.miragespace.co/specter/spec.Build=${GIT_HASH} -X go.miragespace.co/specter/spec.BuildTime=`date +%s`" \ -o bin/specter . FROM debian:bullseye-slim RUN apt-get update && apt-get install -y supervisor && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY --from=app-builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ COPY --from=app-builder /app/assets/supervisord.conf /app/supervisord.conf COPY --from=app-builder /app/bin/specter /app/specter CMD ["/usr/bin/supervisord", "-c", "/app/supervisord.conf"]