# Multi-stage build for Terraform Registry
# 
# Stage 1: Build Go binary
# Stage 2: Minimal Alpine runtime

FROM golang:1.24-alpine AS builder
ENV GOTOOLCHAIN=auto
WORKDIR /app
COPY server/go.mod server/go.sum ./
RUN go mod download
COPY server/ .
RUN CGO_ENABLED=0 go build -o registry .

FROM alpine:3.21
RUN apk --no-cache add ca-certificates
COPY --from=builder /app/registry /registry

# ── Prod config (change here → rebuild → push → redeploy) ─────────────────
ENV S3_ENDPOINT=s3.msk-1.ngcloud.ru \
    S3_BUCKET=terraform-registry \
    S3_PREFIX=tf-registry.services.ngcloud.ru \
    REGISTRY_HOSTNAME=tf-registry.services.ngcloud.ru \
    PORT=5000 \
    S3_ACCESS_KEY=6DDP5PKQEE37WLSWXP07 \
    S3_SECRET_KEY=W0vV4YNeHIqMa2sRCXsR61ZuQfAJIZzVj2VgnBrT
# ── Reader-креды (1112_terraform:reader), убрать когда jsonEnv в modify ───

EXPOSE 5000
CMD ["/registry"]
