File
Blob: Dockerfile.flyio
| 1 | FROM node:22.14.0-alpine AS ui-builder |
| 2 | RUN apk --no-cache add make |
| 3 | WORKDIR /app |
| 4 | COPY . . |
| 5 | |
| 6 | RUN make ui |
| 7 | |
| 8 | FROM golang:1.27.1-alpine AS app-builder |
| 9 | RUN apk --no-cache add ca-certificates git |
| 10 | WORKDIR /app |
| 11 | COPY . . |
| 12 | COPY --from=ui-builder /app/ui/dist /app/ui/dist |
| 13 | |
| 14 | ARG GIT_HASH=head |
| 15 | RUN 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 | |
| 20 | FROM debian:bullseye-slim |
| 21 | RUN apt-get update && apt-get install -y supervisor && rm -rf /var/lib/apt/lists/* |
| 22 | WORKDIR /app |
| 23 | COPY --from=app-builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ |
| 24 | COPY --from=app-builder /app/assets/supervisord.conf /app/supervisord.conf |
| 25 | COPY --from=app-builder /app/bin/specter /app/specter |
| 26 | |
| 27 | CMD ["/usr/bin/supervisord", "-c", "/app/supervisord.conf"] |