Procházet zdrojové kódy

chore: add health check for EMQX, bridge service awaits check

chore/proposed-structure
Blaz Smehov před 1 měsícem
rodič
revize
f9f61afa27
8 změnil soubory, kde provedl 9836 přidání a 0 odebrání
  1. +84
    -0
      build/docker-compose.yml
  2. +17
    -0
      build/package/Dockerfile.bridge
  3. +17
    -0
      build/package/Dockerfile.decoder
  4. +18
    -0
      build/package/Dockerfile.server
  5. binární
      log_files/device_positions_x-y.xlsx
  6. +9600
    -0
      log_files/mqtt_20250724_1700 copy.log
  7. +100
    -0
      log_files/mqtt_20250724_1700.log
  8. binární
      log_files/mqtt_20250724_1700.log.bz2

+ 84
- 0
build/docker-compose.yml Zobrazit soubor

@@ -0,0 +1,84 @@
services:
emqx:
image: emqx/emqx:5.8.8
container_name: emqx
environment:
- EMQX_DASHBOARD__DEFAULT_USERNAME=user
- EMQX_DASHBOARD__DEFAULT_PASSWORD=pass
ports:
- "127.0.0.1:1883:1883"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:18083/api/v5/status"]
interval: 10s
timeout: 5s
retries: 10
start_period: 20s

kafka:
image: apache/kafka:3.9.0
container_name: kafka
environment:
- KAFKA_NODE_ID=1
- KAFKA_PROCESS_ROLES=broker,controller
- KAFKA_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
- KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092
- KAFKA_CONTROLLER_LISTENER_NAMES=CONTROLLER
- KAFKA_CONTROLLER_QUORUM_VOTERS=1@kafka:9093
- KAFKA_LOG_DIRS=/tmp/kraft-combined-logs
- KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1
ports:
- "127.0.0.1:9092:9092"

valkey:
image: valkey/valkey:9.0.0
container_name: valkey
ports:
- "127.0.0.1:6379:6379"

presense-decoder:
build:
context: ../
dockerfile: build/package/Dockerfile.decoder
image: presense-decoder
container_name: presense-decoder
environment:
- REDIS_URL=valkey:6379
- KAFKA_URL=kafka:9092
depends_on:
- kafka
- valkey
restart: always

presense-server:
build:
context: ../
dockerfile: build/package/Dockerfile.server
image: presense-server
container_name: presense-server
environment:
- REDIS_URL=valkey:6379
- KAFKA_URL=kafka:9092
depends_on:
- kafka
- emqx
ports:
- "127.0.0.1:1902:1902"
restart: always

presense-bridge:
build:
context: ../
dockerfile: build/package/Dockerfile.bridge
image: presense-bridge
container_name: presense-bridge
environment:
- KAFKA_URL=kafka:9092
- MQTT_HOST=emqx:1883
- MQTT_USERNAME=user
- MQTT_PASSWORD=pass
depends_on:
kafka:
condition: service_started
emqx:
condition: service_healthy
restart: always

+ 17
- 0
build/package/Dockerfile.bridge Zobrazit soubor

@@ -0,0 +1,17 @@
# syntax=docker/dockerfile:1

FROM golang:1.24.0 AS builder
WORKDIR /app

COPY go.mod go.sum ./
RUN go mod download

COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o bridge ./cmd/bridge

FROM alpine:latest
RUN apk add --no-cache ca-certificates
WORKDIR /app
COPY --from=builder /app/bridge .

ENTRYPOINT ["./bridge"]

+ 17
- 0
build/package/Dockerfile.decoder Zobrazit soubor

@@ -0,0 +1,17 @@
# syntax=docker/dockerfile:1

FROM golang:1.24.0 AS builder
WORKDIR /app

COPY go.mod go.sum ./
RUN go mod download

COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o decoder ./cmd/decoder

FROM alpine:latest
RUN apk add --no-cache ca-certificates
WORKDIR /app
COPY --from=builder /app/decoder .

ENTRYPOINT ["./decoder"]

+ 18
- 0
build/package/Dockerfile.server Zobrazit soubor

@@ -0,0 +1,18 @@
# syntax=docker/dockerfile:1

FROM golang:1.24.0 AS builder
WORKDIR /app

COPY go.mod go.sum ./
RUN go mod download

COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o server ./cmd/server

FROM alpine:latest
RUN apk add --no-cache ca-certificates
WORKDIR /app
COPY --from=builder /app/server .

EXPOSE 1902
ENTRYPOINT ["./server"]

binární
log_files/device_positions_x-y.xlsx Zobrazit soubor


+ 9600
- 0
log_files/mqtt_20250724_1700 copy.log
Diff nebyl zobrazen, protože je příliš veliký
Zobrazit soubor


+ 100
- 0
log_files/mqtt_20250724_1700.log
Diff nebyl zobrazen, protože je příliš veliký
Zobrazit soubor


binární
log_files/mqtt_20250724_1700.log.bz2 Zobrazit soubor


Načítá se…
Zrušit
Uložit