Skip to content
File

Blob: Dockerfile.flyio

938 bytes
1FROM node:22.14.0-alpine AS ui-builder
2RUN apk --no-cache add make
3WORKDIR /app
4COPY . .
5 
6RUN make ui
7 
8FROM golang:1.27.1-alpine AS app-builder
9RUN apk --no-cache add ca-certificates git
10WORKDIR /app
11COPY . .
12COPY --from=ui-builder /app/ui/dist /app/ui/dist
13 
14ARG GIT_HASH=head
15RUN CGO_ENABLED=0 GOARM=7 GOAMD64=v3 \
16 go build -tags 'osusergo netgo no_mocks' -buildvcs=false \
17 -ldflags "-s -w -extldflags -static -X go.miragespace.co/specter/spec.Build=${GIT_HASH} -X go.miragespace.co/specter/spec.BuildTime=`date +%s`" \
18 -o bin/specter .
19 
20FROM debian:bullseye-slim
21RUN apt-get update && apt-get install -y supervisor && rm -rf /var/lib/apt/lists/*
22WORKDIR /app
23COPY --from=app-builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
24COPY --from=app-builder /app/assets/supervisord.conf /app/supervisord.conf
25COPY --from=app-builder /app/bin/specter /app/specter
26 
27CMD ["/usr/bin/supervisord", "-c", "/app/supervisord.conf"]