Go-сервис без внешних фронтенд-зависимостей: embedded HTML-страница
с SVG-изображением платы (датчик + вентилятор + свет + помпа) и
Server-Sent Events для live-обновления. Слушает devices/+/commands
и реально отвечает ack'ом, публикует devices/{id}/telemetry —
протокол зеркалит ingest-service/device-control-service основного
репозитория, общего кода между репозиториями нет. Дефолтные
external_id (sensor-1/fan-1/light-1/pump-1) совпадают с
DemoGrowboxSeeder платформы.
14 lines
318 B
Docker
14 lines
318 B
Docker
FROM golang:1.25-alpine AS build
|
|
WORKDIR /src
|
|
COPY go.mod go.sum ./
|
|
RUN go mod download
|
|
COPY . .
|
|
RUN CGO_ENABLED=0 go build -o /out/emulator ./cmd/emulator
|
|
|
|
FROM alpine:3.20
|
|
RUN adduser -D -u 10001 app
|
|
COPY --from=build /out/emulator /usr/local/bin/emulator
|
|
USER app
|
|
EXPOSE 8091
|
|
ENTRYPOINT ["/usr/local/bin/emulator"]
|