feat: монолит iot-service (Фаза 1) — config/store/api/bridge/consumer без k8s, устройства в PG, новые Dockerfile/Makefile

This commit is contained in:
“Naeel”
2026-08-16 10:07:51 +04:00
parent f0c36a11ee
commit 9d08473d5f
27 changed files with 3716 additions and 0 deletions
+38
View File
@@ -0,0 +1,38 @@
# 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"]