44 lines
1.6 KiB
Docker
44 lines
1.6 KiB
Docker
# ⛔⛔⛔ ЛЕГАСИ (2026-08-16) — СТАРЫЙ IoT (3 бинарника, образ naeel/iot-operator). НЕ ИСПОЛЬЗОВАТЬ.
|
|
# Новый монолит получит собственный Dockerfile. Актуальное: HISTORY/2026-08-16-session-log.md
|
|
|
|
# Создано: 2026-04-12
|
|
# Изменено: 2026-04-12 (kafka-consumer → sqs-consumer)
|
|
# Dockerfile для IoT managed service.
|
|
# Multi-stage build: 3 бинарника (iot-operator, mqtt-bridge, sqs-consumer).
|
|
# Образ: naeel/iot-operator (Docker Hub).
|
|
|
|
FROM golang:1.25 AS builder
|
|
WORKDIR /workspace
|
|
|
|
# Кэширование зависимостей
|
|
COPY go.mod go.sum ./
|
|
RUN go mod download
|
|
|
|
# Исходный код
|
|
COPY api/ api/
|
|
COPY controllers/ controllers/
|
|
COPY cmd/ cmd/
|
|
COPY internal/ internal/
|
|
|
|
# iot-operator — controller-manager + REST API
|
|
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -o iot-operator ./cmd/iot-operator/
|
|
|
|
# mqtt-bridge — MQTT (EMQX) → shared-SQS
|
|
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -o mqtt-bridge ./cmd/mqtt-bridge/
|
|
|
|
# sqs-consumer — shared-SQS → Postgres
|
|
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -o sqs-consumer ./cmd/sqs-consumer/
|
|
|
|
# --- Runtime ---
|
|
FROM gcr.io/distroless/static:nonroot
|
|
WORKDIR /
|
|
|
|
# Все три бинарника в одном образе.
|
|
# Какой запускать — определяется command в k8s Deployment.
|
|
COPY --from=builder /workspace/iot-operator .
|
|
COPY --from=builder /workspace/mqtt-bridge .
|
|
COPY --from=builder /workspace/sqs-consumer .
|
|
|
|
USER 65532:65532
|
|
ENTRYPOINT ["/iot-operator"]
|