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