- Notification service: Slack Block Kit (remediate/accept buttons), webhook delivery, rate limit handling - Dispatcher with severity-based channel filtering - Agent Dockerfile: multi-stage Go build, static binary - SaaS Dockerfile: multi-stage Node build - Fly.io config: scale-to-zero, shared-cpu - Gitea Actions: Go test+vet, Node typecheck+test, cross-compile agent (linux/darwin/windows)
14 lines
331 B
Docker
14 lines
331 B
Docker
# --- Build stage ---
|
|
FROM golang:1.22-alpine AS builder
|
|
WORKDIR /app
|
|
COPY go.mod go.sum ./
|
|
RUN go mod download
|
|
COPY . .
|
|
RUN CGO_ENABLED=0 GOOS=linux go build -o /drift ./cmd/drift
|
|
|
|
# --- Runtime stage ---
|
|
FROM alpine:3.19
|
|
RUN apk add --no-cache ca-certificates
|
|
COPY --from=builder /drift /usr/local/bin/drift
|
|
ENTRYPOINT ["drift"]
|