Skip to content
File

Blob: Dockerfile.dev

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