# Dockerfile — монолит iot-service (один бинарник, один контейнер).
# Образ: naeel/iot-service (Docker Hub, публичный — требование платформы).
#
# Env-дефолты (не секреты) вшиты сюда — deck-UI задаёт только секреты.

FROM golang:1.25 AS builder
WORKDIR /workspace

COPY go.mod go.sum ./
RUN go mod download

COPY cmd/ cmd/
COPY internal/ internal/

ARG VERSION=dev
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a \
    -ldflags "-X main.version=${VERSION}" -o iot-service ./cmd/iot-service/

FROM gcr.io/distroless/static:nonroot
WORKDIR /
COPY --from=builder /workspace/iot-service .

USER 65532:65532
EXPOSE 9090

ENV API_PORT=9090 \
    SQS_ENDPOINT=http://containerk8s.f1ffb134-7d16-45bd-8bef-69f6ec8ab33c.svc.cluster.local:4100 \
    SQS_QUEUE_NAME=iot-telemetry \
    SQS_REGION=us-east-1 \
    SQS_LONG_POLL_SECONDS=20 \
    SQS_VISIBILITY_TIMEOUT=120 \
    MQTT_CLIENT_ID=iot-bridge \
    MQTT_PORT=8083 \
    MQTT_WS_PATH=/mqtt \
    AUTH_TEST_MODE=false \
    LOG_LEVEL=info

ENTRYPOINT ["/iot-service"]
