File
Blob: Dockerfile.dev
| 1 | # syntax=docker/dockerfile:1 |
| 2 | |
| 3 | FROM node:22.14.0-alpine AS ui-builder |
| 4 | RUN apk --no-cache add make |
| 5 | WORKDIR /app |
| 6 | COPY . . |
| 7 | |
| 8 | RUN make ui |
| 9 | |
| 10 | FROM golang:1.27.1-bookworm AS app-builder |
| 11 | RUN apt-get update \ |
| 12 | && apt-get install -y --no-install-recommends ca-certificates gcc \ |
| 13 | && rm -rf /var/lib/apt/lists/* |
| 14 | WORKDIR /app |
| 15 | COPY . . |
| 16 | COPY --from=ui-builder /app/ui/dist /app/ui/dist |
| 17 | |
| 18 | RUN cat /etc/ssl/certs/ca-certificates.crt /app/dev/pebble/certs/cert.pem > /app/ca-certificates.crt |
| 19 | |
| 20 | RUN --mount=type=cache,target=/root/go/pkg/mod \ |
| 21 | go mod download |
| 22 | |
| 23 | ARG TARGETOS |
| 24 | ARG TARGETARCH |
| 25 | RUN --mount=type=cache,target=/root/.cache/go-build \ |
| 26 | GOARM=7 GOAMD64=v3 \ |
| 27 | go build -race -tags 'osusergo netgo no_mocks' \ |
| 28 | -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`" \ |
| 29 | -o bin/specter . |
| 30 | |
| 31 | FROM --platform=$BUILDPLATFORM debian:bookworm-slim |
| 32 | WORKDIR /app |
| 33 | COPY --from=app-builder /app/ca-certificates.crt /etc/ssl/certs/ |
| 34 | COPY --from=app-builder /app/bin/specter /app/specter |
| 35 | |
| 36 | ENTRYPOINT ["/app/specter"] |