Files
IoT/Dockerfile
T

39 lines
1.1 KiB
Docker

# 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"]