-
Notifications
You must be signed in to change notification settings - Fork 57
/
Copy pathdocker-compose.l4t.yml
134 lines (127 loc) · 4.41 KB
/
docker-compose.l4t.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
services:
kafka:
image: bitnami/kafka:3.5.1
restart: unless-stopped
volumes:
- "kafka_data:/bitnami"
environment:
# KRaft settings
- KAFKA_CFG_NODE_ID=0
- KAFKA_CFG_PROCESS_ROLES=controller,broker
- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093
# Listeners
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://:9092
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
- KAFKA_CFG_INTER_BROKER_LISTENER_NAME=PLAINTEXT
healthcheck:
# noinspection ComposeUnknownValues,ComposeUnknownValues
test:
- CMD-SHELL
- /opt/bitnami/kafka/bin/kafka-topics.sh --bootstrap-server localhost:9092 --list
start_period: 120s
interval: 15s
timeout: 10s
retries: 5
keydb:
image: eqalpha/keydb:arm64_v6.3.3
restart: unless-stopped
video-loop-source:
image: ghcr.io/insight-platform/savant-adapters-gstreamer-l4t:latest
restart: unless-stopped
volumes:
- zmq_sockets:/tmp/zmq-sockets
- /tmp/video-loop-source-downloads:/tmp/video-loop-source-downloads
environment:
- LOCATION=https://eu-central-1.linodeobjects.com/savant-data/demo/Free_City_Street_Footage.mp4
- DOWNLOAD_PATH=/tmp/video-loop-source-downloads
- ZMQ_ENDPOINT=pub+bind:ipc:///tmp/zmq-sockets/loop-source.ipc
- SOURCE_ID=city-traffic
- SYNC_OUTPUT=True
entrypoint: /opt/savant/adapters/gst/sources/video_loop.sh
depends_on:
module:
condition: service_healthy
kafka-redis-sink:
condition: service_started
kafka-redis-sink:
image: ghcr.io/insight-platform/savant-adapters-py-l4t:latest
restart: unless-stopped
volumes:
- zmq_sockets:/tmp/zmq-sockets
environment:
- ZMQ_ENDPOINT=sub+connect:ipc:///tmp/zmq-sockets/loop-source.ipc
- KAFKA_BROKERS=kafka:9092
- KAFKA_TOPIC=kafka-redis-adapter-demo
- KAFKA_CREATE_TOPIC=True
- KAFKA_CREATE_TOPIC_NUM_PARTITIONS=4
- KAFKA_CREATE_TOPIC_REPLICATION_FACTOR=1
- 'KAFKA_CREATE_TOPIC_CONFIG={"retention.ms": 300000}'
- REDIS_HOST=keydb
- REDIS_PORT=6379
- REDIS_DB=0
- REDIS_TTL_SECONDS=60
command: python -m adapters.python.sinks.kafka_redis
depends_on:
kafka:
condition: service_healthy
keydb:
condition: service_started
kafka-redis-source:
image: ghcr.io/insight-platform/savant-adapters-py-l4t:latest
restart: unless-stopped
volumes:
- zmq_sockets:/tmp/zmq-sockets
environment:
- ZMQ_ENDPOINT=pub+connect:ipc:///tmp/zmq-sockets/input-video.ipc
- KAFKA_BROKERS=kafka:9092
- KAFKA_TOPIC=kafka-redis-adapter-demo
- KAFKA_GROUP_ID=kafka-redis-adapter-demo
- KAFKA_CREATE_TOPIC=True
- KAFKA_CREATE_TOPIC_NUM_PARTITIONS=4
- KAFKA_CREATE_TOPIC_REPLICATION_FACTOR=1
- 'KAFKA_CREATE_TOPIC_CONFIG={"retention.ms": 300000}'
command: python -m adapters.python.sources.kafka_redis
depends_on:
kafka:
condition: service_healthy
keydb:
condition: service_started
module:
image: ghcr.io/insight-platform/savant-deepstream-l4t:latest
restart: unless-stopped
volumes:
- zmq_sockets:/tmp/zmq-sockets
- ../../cache:/cache
- ..:/opt/savant/samples
command: samples/kafka_redis_adapter/demo.yml
environment:
- MODEL_PATH=/cache/models/peoplenet_detector
- DOWNLOAD_PATH=/cache/downloads/peoplenet_detector
- ZMQ_SRC_ENDPOINT=sub+bind:ipc:///tmp/zmq-sockets/input-video.ipc
- ZMQ_SINK_ENDPOINT=pub+bind:ipc:///tmp/zmq-sockets/output-video.ipc
- METRICS_FRAME_PERIOD=1000
- CODEC=jpeg
runtime: nvidia
always-on-sink:
image: ghcr.io/insight-platform/savant-adapters-deepstream-l4t:latest
restart: unless-stopped
ports:
- "554:554" # RTSP
- "1935:1935" # RTMP
- "888:888" # HLS
- "8889:8889" # WebRTC
volumes:
- zmq_sockets:/tmp/zmq-sockets
- ../assets/stub_imgs:/stub_imgs
environment:
- ZMQ_ENDPOINT=sub+connect:ipc:///tmp/zmq-sockets/output-video.ipc
- SOURCE_ID=city-traffic
- FRAMERATE=25/1
- STUB_FILE_LOCATION=/stub_imgs/smpte100_1280x720.jpeg
- DEV_MODE=True
command: python -m adapters.ds.sinks.always_on_rtsp
volumes:
kafka_data:
zmq_sockets: