# 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=30 \ MQTT_CLIENT_ID=iot-bridge \ MQTT_PORT=8083 \ MQTT_WS_PATH=/mqtt \ AUTH_TEST_MODE=false \ LOG_LEVEL=info ENTRYPOINT ["/iot-service"]