From aedb0a4c4f829bc26612a8199278be6ea59090d7 Mon Sep 17 00:00:00 2001 From: Adam Blasko Date: Wed, 3 Apr 2024 12:43:19 +0200 Subject: [PATCH] Removed jetson-specific docker composes We no longer distribute jetson-specific docker images. Newly released SF platform images are multiplatform (same as SFStation and AccessController images) so no jetson-specific composes are needed, as the existing ones should cover the arm64 usecases --- sf-docker/README.md | 24 +- sf-docker/nvidia-jetson/.env | 64 -- sf-docker/nvidia-jetson/.env.sfac | 47 -- sf-docker/nvidia-jetson/.env.sfstation | 79 --- sf-docker/nvidia-jetson/README.md | 42 -- .../create-wl-stream-generation.sh | 14 - sf-docker/nvidia-jetson/docker-compose.yml | 625 ------------------ sf-docker/nvidia-jetson/run.sh | 81 --- .../sf_dependencies/docker-compose.yml | 53 -- .../sf_dependencies/etc_rmq/enabled_plugins | 1 - .../sf_dependencies/etc_rmq/rabbitmq.conf | 8 - sf-docker/special/jetson-LFIS/.env | 62 -- sf-docker/special/jetson-LFIS/.env.sfac | 47 -- sf-docker/special/jetson-LFIS/.env.sfstation | 84 --- sf-docker/special/jetson-LFIS/README.md | 9 - .../special/jetson-LFIS/docker-compose.yml | 216 ------ sf-docker/special/jetson-LFIS/run.sh | 71 -- .../sf_dependencies/docker-compose.yml | 80 --- .../sf_dependencies/etc_rmq/enabled_plugins | 1 - .../sf_dependencies/etc_rmq/rabbitmq.conf | 8 - 20 files changed, 13 insertions(+), 1603 deletions(-) delete mode 100644 sf-docker/nvidia-jetson/.env delete mode 100644 sf-docker/nvidia-jetson/.env.sfac delete mode 100644 sf-docker/nvidia-jetson/.env.sfstation delete mode 100644 sf-docker/nvidia-jetson/README.md delete mode 100644 sf-docker/nvidia-jetson/create-wl-stream-generation.sh delete mode 100644 sf-docker/nvidia-jetson/docker-compose.yml delete mode 100755 sf-docker/nvidia-jetson/run.sh delete mode 100644 sf-docker/nvidia-jetson/sf_dependencies/docker-compose.yml delete mode 100644 sf-docker/nvidia-jetson/sf_dependencies/etc_rmq/enabled_plugins delete mode 100644 sf-docker/nvidia-jetson/sf_dependencies/etc_rmq/rabbitmq.conf delete mode 100644 sf-docker/special/jetson-LFIS/.env delete mode 100644 sf-docker/special/jetson-LFIS/.env.sfac delete mode 100644 sf-docker/special/jetson-LFIS/.env.sfstation delete mode 100644 sf-docker/special/jetson-LFIS/README.md delete mode 100644 sf-docker/special/jetson-LFIS/docker-compose.yml delete mode 100644 sf-docker/special/jetson-LFIS/run.sh delete mode 100644 sf-docker/special/jetson-LFIS/sf_dependencies/docker-compose.yml delete mode 100644 sf-docker/special/jetson-LFIS/sf_dependencies/etc_rmq/enabled_plugins delete mode 100644 sf-docker/special/jetson-LFIS/sf_dependencies/etc_rmq/rabbitmq.conf diff --git a/sf-docker/README.md b/sf-docker/README.md index 16d74262..5a664c7c 100644 --- a/sf-docker/README.md +++ b/sf-docker/README.md @@ -1,8 +1,6 @@ # SmartFace on Docker -SmartFace docker images provide an easy way of deploying and scaling SmartFace with all the benefits of containerization. SmartFace platform is distributed as a number of linux docker images, some of which are specific for [Nvidia Jetson](https://developer.nvidia.com/embedded/jetson-developer-kits) platform. - -Note: _Supported Nvidia Jetson versions are Xavier NX and AGX._ +SmartFace docker images provide an easy way of deploying and scaling SmartFace with all the benefits of containerization. SmartFace platform is distributed as a number of linux docker images. Images are multiplatform and support both amd64 and arm64 architectures. # Deployment @@ -16,7 +14,7 @@ Before deploying SF, you will need: In order to run SmartFace, you need a valid license. -- Identify hardware id (hwid) for your machine with command `docker run registry.gitlab.com/innovatrics/smartface/license-manager:3.2.7`. For nvidia jetson device use command `docker run --privileged registry.gitlab.com/innovatrics/smartface/license-manager:3.2.7`. This process work for native linux, for `WSL2` eg. linux containers on Windows you need special license for which you need to contact our sales. +- Identify hardware id (hwid) for your machine with command `docker run registry.gitlab.com/innovatrics/smartface/license-manager:3.2.7`. This process works for native linux, for `WSL2` eg. linux containers on Windows you need special license for which you need to contact our sales. - Obtain license for your hwid from our Customer Portal https://customerportal.innovatrics.com/ - Copy the license file `iengine.lic` to the directory where `docker-compose.yml` is located @@ -25,19 +23,16 @@ In order to run SmartFace, you need a valid license. To get up and running as fast as possible, these samples are available: - [`all-in-one`](./all-in-one/) - a All-in-One setup known from previous version. Contains all available services. - [`LFIS`](./LFIS/) - Lightweight Facial Identification Service deployment sample -- [`nvidia-jetson`](./nvidia-jetson/) - launch demo deployment on [Nvidia Jetson](https://developer.nvidia.com/embedded/jetson-developer-kits) platform - -Note: _jetson docker containers need to be run in privileged mode. This is because we need specific system files available in the container to properly check license usage._ # GPU acceleration -Some services can benefit from GPU acceleration, which can be enabled in docker compose file, but also some prerequisites needs to be met on host machine. +Note: _Gpu acceleration is supported only on amd64 platform with NVIDIA GPU_ -Please note that GPU acceleration is supported only on NVIDIA GPU. +Some services can benefit from GPU acceleration, which can be enabled in docker compose file, but also some prerequisites needs to be met on host machine. To use GPU acceleration, you will need following on the docker host machine: -- Nvidia GPU compatible with Cuda 11.6 +- Nvidia GPU compatible with Cuda 11.8 - Nvidia driver of version >=510.47.03 - Nvidia container toolkit https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker @@ -46,7 +41,14 @@ When using the nvidia docker runtime SmartFace camera processes need gstreamer p Other services which could use GPU needs also uncomment environment variable `Gpu__GpuEnabled=true`. This is necessary for extractor, detector, pedestrian-detector and liveness service. -For using specific neural networks runtime it is possible to uncomment environment variable `Gpu__GpuNeuralRuntime` which can have values `Default`, `Cuda` or `Tensor`. The GPU needs to support these neural runtimes. When using `Tensor` you can uncomment mapping `"/var/tmp/innovatrics/tensor-rt:/var/tmp/innovatrics/tensor-rt"` to retain TensorRT cache files in the host when container is recreated. This can be helpful as generating cache files is longer operation which needs to be performed before the first run of neural network. Setting neural network runtime is possible for camera, extractor, detector, pedestrian-detector and liveness services. +For using specific neural networks runtime it is possible to uncomment environment variable `Gpu__GpuNeuralRuntime` which can have values `Default`, `Cuda` or `Tensor`. The GPU needs to support these neural runtimes. When using `Tensor` you can uncomment mapping `"/var/tmp/innovatrics/tensor-rt:/var/tmp/innovatrics/tensor-rt"` to retain TensorRT cache files in the host when container is recreated. This can be helpful as generating cache files is longer operation which needs to be performed before the first run of neural network. Setting neural network runtime is possible for following services: +- camera +- extractor +- detector +- pedestrian-detector +- liveness +- object-detector +- pedestrian-extractor ## Production use diff --git a/sf-docker/nvidia-jetson/.env b/sf-docker/nvidia-jetson/.env deleted file mode 100644 index bfaaa126..00000000 --- a/sf-docker/nvidia-jetson/.env +++ /dev/null @@ -1,64 +0,0 @@ -# RMQ config -RabbitMQ__Hostname=rmq -RabbitMQ__Username=guest -RabbitMQ__Password=guest -RabbitMQ__VirtualHost=/ -RabbitMQ__Port=5672 -RabbitMQ__UseSsl=false -RabbitMQ__StreamsPort=5552 - -# MQTT config -MQTT__Hostname=rmq -MQTT__Username=guest -MQTT__Password=guest -MQTT__Port=1883 -MQTT__UseSsl=false - -# Database config -Database__DbEngine=PgSql -ConnectionStrings__CoreDbContext=Server=pgsql;Database=smartface;Username=postgres;Password=Test1234;Trust Server Certificate=true; - -# S3 config -S3Bucket__Endpoint=http://minio:9000 -S3Bucket__BucketName=inno-smartface -S3Bucket__AccessKey=minioadmin -S3Bucket__SecretKey=minioadmin - -# Set true when a Jaeger tracing is required -AppSettings__USE_JAEGER_APP_SETTINGS=false - -# Jaeger tracing endpoint. 'jaeger' is the name of included docker container. -# If targeting outside SmartFace docker, change to remote URL -JAEGER_AGENT_HOST=jaeger - -# API config - we use port 80 in docker and forward it as needed -Hosting__Host=http://0.0.0.0 -Hosting__Port=80 - -# we override the default generation of preview ports for camera in favor of static configuration -CameraDefaults__PreviewPort=30000 - -# Number of camera services seeded -CameraServicesCount=5 - -# Using NoSql database -NoSqlDataStorageDisabled=false - -# Edge stream processor operation modes -OperationMode__MatchingDataStrategy=ServerOnly -OperationMode__LivenessDataStrategy=ServerOnly - -# Using template for Gstreamer pipeline -#jetson -GstPipelineTemplate=uridecodebin uri={0} source::latency=0 ! queue max-size-buffers=1 leaky=downstream ! nvvidconv ! video/x-raw, format=(string)BGRx ! videoconvert ! video/x-raw, format=(string)BGR ! appsink - -# Registry, must end with a forward slash `/` -REGISTRY=registry.gitlab.com/innovatrics/smartface/ - -# Version -SF_VERSION=v5_4.24.0 -AC_VERSION=v5_1.10.0 -SFS_VERSION=v5_1.23.0 - -# MQTT RPC timeout -Rpc__TimeoutMs=10000 \ No newline at end of file diff --git a/sf-docker/nvidia-jetson/.env.sfac b/sf-docker/nvidia-jetson/.env.sfac deleted file mode 100644 index 1915e34d..00000000 --- a/sf-docker/nvidia-jetson/.env.sfac +++ /dev/null @@ -1,47 +0,0 @@ -FilterConfiguration__FaceOrderConfiguration__Enabled=false -FilterConfiguration__FaceOrderConfiguration__Order=1 - -FilterConfiguration__OpeningDebounceConfiguration__OpeningDebounceEnabled=true -FilterConfiguration__OpeningDebounceConfiguration__OpeningDebounceMs=4000 - -FilterConfiguration__BlockingDebounceConfiguration__BlockingDebounceEnabled=true -FilterConfiguration__BlockingDebounceConfiguration__BlockingDebounceMs=4000 - -FilterConfiguration__ExclusiveCameraConfiguration__Enabled=true -FilterConfiguration__ExclusiveCameraConfiguration__ExclusivityMs=5000 - -FilterConfiguration__NotIdentifiedPersonConfiguration__Enabled=true -FilterConfiguration__NotIdentifiedPersonConfiguration__RoamingLimitTimeMs=3000 - -FilterConfiguration__BlacklistsConfiguration__Enabled=true -FilterConfiguration__BlacklistsConfiguration__Blacklists__0=firt_black_list_id -FilterConfiguration__BlacklistsConfiguration__Blacklists__1=second_black_list_id -FilterConfiguration__BlacklistsConfiguration__Blacklists__2=third_black_list_id - -FilterConfiguration__FaceMaskConfiguration__Enabled=false -FilterConfiguration__FaceMaskConfiguration__DenyingDebounceMs=4000 - -FilterConfiguration__IntentionalAccessConfiguration__Enabled=false -FilterConfiguration__IntentionalAccessConfiguration__AlwaysOpenForFaceSizeLargerThan=160 -FilterConfiguration__IntentionalAccessConfiguration__PredictionMilliseconds=1500 - -FilterConfiguration__StreamGroupsConfiguration__Enabled=true -FilterConfiguration__StreamGroupsConfiguration__GroupOpeningDebounceMs=3000 - -FilterConfiguration__SpoofCheckConfiguration__Enabled=false -FilterConfiguration__SpoofCheckConfiguration__DenyingDebounceMs=4000 - -# Set true when a Jaeger tracing is required -AppSettings__0__Key=USE_JAEGER_APP_SETTINGS -AppSettings__0__Value=false - -AppSettings__1__Key=JAEGER_SAMPLER_TYPE -AppSettings__1__Value=const - -AppSettings__2__Key=JAEGER_SAMPLER_PARAM -AppSettings__2__Value=1 - -# Jaeger tracing endpoint. 'jaeger' is the name of included docker container. -# If targeting outside SmartFace docker, change to remote URL -AppSettings__3__Key=JAEGER_AGENT_HOST -AppSettings__3__Value=jaeger \ No newline at end of file diff --git a/sf-docker/nvidia-jetson/.env.sfstation b/sf-docker/nvidia-jetson/.env.sfstation deleted file mode 100644 index 711eaf11..00000000 --- a/sf-docker/nvidia-jetson/.env.sfstation +++ /dev/null @@ -1,79 +0,0 @@ -# IP address, where SmartFace Station server will bind to -HOST=0.0.0.0 - -# Port number, where SmartFace Station server will bind to -PORT=8000 - -# Full addresses to SmartFace Server APIs -# CORE API example: http://[sf-server-host]:[port]/api/v1 -CORE_API_ROOT=http://SFApi:80/api/v1 - -# ODATA API example: http://[sf-server-host]:[port] -ODATA_API_ROOT=http://SFODataApi:80 - -# ZERO_MQ_HOST example: [sf-server-host] -ZERO_MQ_HOST=SFBase - -# Full address to SmartFace Server GraphQL APIs -GRAPHQL_ROOT=http://SFGraphQLApi:80/graphql - -# example: CAM_PREVIEW_HOST_[camera.serviceName]=[sf-camera-host] -CAM_PREVIEW_HOST_SFCAM1=SFCam1 -CAM_PREVIEW_HOST_SFCAM2=SFCam2 -CAM_PREVIEW_HOST_SFCAM3=SFCam3 -CAM_PREVIEW_HOST_SFCAM4=SFCam4 -CAM_PREVIEW_HOST_SFCAM5=SFCam5 - -# Address to Access Controller gRPC endpoint -# Example: [sf-server-host]:[port] -ACCESS_CONTROLLER_ADDRESS=SFAccessController:80 - -# Comma separated Watchlist IDs used as a global blacklists -BLACKLIST_WATCHLIST_IDS=abcdabcd-abcd-1234-abcd-abcdabcdacd - -# Whether to run with Keycloak authentication server or not -ENABLE_AUTHENTICATION=false - -# Full URL address to Keycloak's users management (if empty no url will be shown in webapp configuration) -KEYCLOAK_ADMIN_URL=http://keycloak-host:8080/auth/admin - -# In case of unauthorize access user will be redirected to provided URL (eg. keycloack login) -# If URL is not provided No access page will be shown -UNAUTHORIZE_ACCESS_REDIRECTION_URL=http://keycloak.login - -# Score to percentage conversion parameters -SCORE_CONVERSION_LOWER_LIMIT=20 -SCORE_CONVERSION_LOWER_LIMIT_PERCENTAGE=30 -SCORE_CONVERSION_UPPER_LIMIT=40 -SCORE_CONVERSION_UPPER_LIMIT_PERCENTAGE=90 - -# DOT camera parameters (HTTPS is required) -DOT_FACE_CAMERA_ENABLED=false -DOT_FACE_CAMERA_FACE_CENTER_LIMIT=0.2 -DOT_FACE_CAMERA_FACE_CONFIDENCE=0.06 - -# Wether to run with HTTPS authentication server or not -HTTPS_ENABLED=false -HTTPS_HOST_NAME= -HTTPS_KEY_FILE=server.key -HTTPS_CERT_FILE=server.cert - -# Add optional labels to watclist member (key is used in API requests, label is visual representation of key and used only in station frontend) -# WATCHLIST_MEMBER_KEY_0=date -# WATCHLIST_MEMBER_LABEL_0=Date of birth -# WATCHLIST_MEMBER_KEY_1=tax_number -# WATCHLIST_MEMBER_LABEL_1=Tax number -# WATCHLIST_MEMBER_KEY_2=phone -# WATCHLIST_MEMBER_LABEL_2=Phone number - -# Optional roles are used for locking specified part of frontend for given roles -# Claim name is "Group mapper name" specified in Keycloak or "cognito:groups" in Cognito -# ROLES_CLAIM_NAME=sf_roles -# ROLE_KEY_ADMIN=/admin -# ROLE_KEY_SECURITY_SUPERVISOR=/security_supervisor -# ROLE_KEY_SECURITY_OPERATOR=/security_operator -# ROLE_KEY_ACCESS_SUPERVISOR=/access_supervisor -# ROLE_KEY_ACCESS_OPERATOR=/access_operator - -# Enabled Identification page -IDENTIFICATION_ENABLED=false diff --git a/sf-docker/nvidia-jetson/README.md b/sf-docker/nvidia-jetson/README.md deleted file mode 100644 index 412ffb04..00000000 --- a/sf-docker/nvidia-jetson/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# SmartFace on NVIDIA Jetson -Note that the jetson docker containers need to be run in privileged mode. This is because we need specific system files available in the container to properly check license usage. - -## Deployment -1. Install `Docker` and `docker compose` on the host machine. -2. Login to container registry `docker login registry.gitlab.com -u -p `. The credentials are available in our [Customer Portal](https://customerportal.innovatrics.com/). -3. Identify hardware id (hwid) for your machine with command `docker run registry.gitlab.com/innovatrics/smartface/license-manager:3.2.7`. This process work for native linux, for `WSL2` eg. linux containers on Windows you need special license for which you need to contact our sales. -4. Obtain license for your hwid from our Customer Portal https://customerportal.innovatrics.com/ -5. Copy the license file `iengine.lic` to the root of this directory. -6. Run `run.sh` script. The run scripts contain comments which should clarify the steps needed to start everything - -Before deploying SF, you will need: -- Docker -- docker-compose -- Login to container registry `docker login registry.gitlab.com -u -p `. The credentials are available in our [Customer Portal](https://customerportal.innovatrics.com/). -- Identify hardware id (hwid) for your machine with command `docker run registry.gitlab.com/innovatrics/smartface/license-manager:3.2.7`. For nvidia jetson device use command `docker run --privileged registry.gitlab.com/innovatrics/smartface/license-manager:3.2.7`. This process work for native linux, for `WSL2` eg. linux containers on Windows you need special license for which you need to contact our sales. -- Obtain license for your hwid from our Customer Portal https://customerportal.innovatrics.com/ -- Copy the license file `iengine.lic` to the root of this directory. - -To get up and running as fast as possible, multiple run scripts are available for different platforms. -The run scripts contain comments which should clarify the steps needed to start everything: -`run.sh` - -# GPU acceleration -Some services can benefit from GPU acceleration, which can be enabled in docker compose file, but also some prerequisites needs to be met on host machine. - -Please note that GPU acceleration is supported only on NVIDIA GPU. - -To use GPU acceleration, you will need following on the docker host machine: -- Nvidia GPU compatible with Cuda 11.1 -- Nvidia driver of version >= 450.80.02 -- Nvidia container toolkit https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker - -To use GPU for hw decoding and face detection for cameras uncomment `runtime: nvidia` and `GstPipelineTemplate` in `docker-compose.yml` for camera services `sf-cam-*`. -When using the nvidia docker runtime SmartFace camera processes need gstreamer pipelines for camera sources. - -Other services which could use GPU needs also uncomment environment variable `Gpu__GpuEnabled=true`. This is necessary for extractor, detector, pedestrian-detector and liveness service. - -For using specific neural networks runtime it is possible to uncomment environment variable `Gpu__GpuNeuralRuntime` which can have values `Default`, `Cuda` or `Tensor`. The GPU needs to support these neural runtimes. When using `Tensor` you can uncomment mapping `"/var/tmp/innovatrics/tensor-rt:/var/tmp/innovatrics/tensor-rt"` to retain TensorRT cache files in the host when container is recreated. This can be helpful as generating cache files is longer operation which needs to be performed before the first run of neural network. Setting neural network runtime is possible for camera, extractor, detector, pedestrian-detector and liveness services. - -# Production use -The provided docker-compose files are used to demonstrate configuration steps needed to wire everything up and are not fit for production use. The images can be used with any other orchestration engine. Also note that not all services are needed for every use case, e.g the `video-*` services are used for offline video processing, so if offline video processing is not to be used they can be disabled (commented-out). diff --git a/sf-docker/nvidia-jetson/create-wl-stream-generation.sh b/sf-docker/nvidia-jetson/create-wl-stream-generation.sh deleted file mode 100644 index d59cc0a3..00000000 --- a/sf-docker/nvidia-jetson/create-wl-stream-generation.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -getvalue() { - local key="$1" - local value=$(grep -E ^${key}= .env | cut -d '=' -f2- | cut -d$'\r' -f1) - echo "$value" -} - -docker run --rm --name admin-stream-gen --network sf-network $(getvalue REGISTRY)sf-admin:$(getvalue SF_VERSION) \ - populate-wl-update-log-stream \ - -c "$(getvalue ConnectionStrings__CoreDbContext)" \ - -dbe $(getvalue Database__DbEngine) \ - --rmq-host "$(getvalue RabbitMQ__Hostname)" --rmq-user "$(getvalue RabbitMQ__Username)" --rmq-pass "$(getvalue RabbitMQ__Password)" \ - --rmq-virtual-host "$(getvalue RabbitMQ__VirtualHost)" --rmq-port "$(getvalue RabbitMQ__Port)" --rmq-use-ssl "$(getvalue RabbitMQ__UseSsl)" --rmq-streams-port "$(getvalue RabbitMQ__StreamsPort)" diff --git a/sf-docker/nvidia-jetson/docker-compose.yml b/sf-docker/nvidia-jetson/docker-compose.yml deleted file mode 100644 index e2ed417a..00000000 --- a/sf-docker/nvidia-jetson/docker-compose.yml +++ /dev/null @@ -1,625 +0,0 @@ -version: "3.4" -services: - sf-base: - image: ${REGISTRY}sf-jetson-base:${SF_VERSION} - privileged: true - container_name: SFBase - restart: unless-stopped - command: --serviceName SFBase - ports: - - 2406:2406 - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - ConnectionStrings__CoreDbContext - - Database__DbEngine - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - JAEGER_AGENT_HOST - - S3Bucket__Endpoint - - S3Bucket__BucketName - - S3Bucket__AccessKey - - S3Bucket__SecretKey - - NoSqlDataStorageDisabled - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - runtime: nvidia - - sf-streamdatadbworker: - image: ${REGISTRY}sf-jetson-streamdatadbworker:${SF_VERSION} - container_name: SFStreamDataDbWorker - restart: unless-stopped - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - ConnectionStrings__CoreDbContext - - Database__DbEngine - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - JAEGER_AGENT_HOST - - S3Bucket__Endpoint - - S3Bucket__BucketName - - S3Bucket__AccessKey - - S3Bucket__SecretKey - - NoSqlDataStorageDisabled - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - runtime: nvidia - - sf-group: - image: ${REGISTRY}sf-jetson-grouping:${SF_VERSION} - privileged: true - container_name: SFGroup - restart: unless-stopped - command: --serviceName SFGroup - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - ConnectionStrings__CoreDbContext - - Database__DbEngine - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - JAEGER_AGENT_HOST - - S3Bucket__Endpoint - - S3Bucket__BucketName - - S3Bucket__AccessKey - - S3Bucket__SecretKey - - NoSqlDataStorageDisabled - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - runtime: nvidia - - sf-cam-1: - image: ${REGISTRY}sf-jetson-cam:${SF_VERSION} - privileged: true - container_name: SFCam1 - restart: unless-stopped - command: --serviceName SFCam1 - ports: - - 30001:${CameraDefaults__PreviewPort} - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - ConnectionStrings__CoreDbContext - - Database__DbEngine - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - JAEGER_AGENT_HOST - - S3Bucket__Endpoint - - S3Bucket__BucketName - - S3Bucket__AccessKey - - S3Bucket__SecretKey - - GstPipelineTemplate - - NoSqlDataStorageDisabled - # - Gpu__GpuNeuralRuntime=Tensor - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - # - "/var/tmp/innovatrics/tensor-rt:/var/tmp/innovatrics/tensor-rt" - runtime: nvidia - - sf-cam-2: - image: ${REGISTRY}sf-jetson-cam:${SF_VERSION} - privileged: true - container_name: SFCam2 - restart: unless-stopped - command: --serviceName SFCam2 - ports: - - 30002:${CameraDefaults__PreviewPort} - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - ConnectionStrings__CoreDbContext - - Database__DbEngine - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - JAEGER_AGENT_HOST - - S3Bucket__Endpoint - - S3Bucket__BucketName - - S3Bucket__AccessKey - - S3Bucket__SecretKey - - GstPipelineTemplate - - NoSqlDataStorageDisabled - # - Gpu__GpuNeuralRuntime=Tensor - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - # - "/var/tmp/innovatrics/tensor-rt:/var/tmp/innovatrics/tensor-rt" - runtime: nvidia - - sf-cam-nx: - image: ${REGISTRY}sf-jetson-cam:${SF_VERSION} - privileged: true - # Guid needs to match ServiceInstallNames.NX_TEST_CAMERA_GUID - container_name: 53b4d78e-323f-4a0f-aa6d-99c464448b6d - restart: unless-stopped - command: --serviceName 53b4d78e-323f-4a0f-aa6d-99c464448b6d - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - ConnectionStrings__CoreDbContext - - Database__DbEngine - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - JAEGER_AGENT_HOST - - S3Bucket__Endpoint - - S3Bucket__BucketName - - S3Bucket__AccessKey - - S3Bucket__SecretKey - - NoSqlDataStorageDisabled - # - Gpu__GpuNeuralRuntime=Tensor - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - # - "/var/tmp/innovatrics/tensor-rt:/var/tmp/innovatrics/tensor-rt" - runtime: nvidia - - api: - image: ${REGISTRY}sf-jetson-api:${SF_VERSION} - privileged: true - container_name: SFApi - restart: unless-stopped - ports: - # we forward the configured ports to default SF ports - - 8098:${Hosting__Port} - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - ConnectionStrings__CoreDbContext - - Database__DbEngine - - Hosting__Host - - Hosting__Port - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - JAEGER_AGENT_HOST - - S3Bucket__Endpoint - - S3Bucket__BucketName - - S3Bucket__AccessKey - - S3Bucket__SecretKey - - NoSqlDataStorageDisabled - - CameraDefaults__PreviewPort - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - runtime: nvidia - - sf-graphql-api: - image: ${REGISTRY}sf-jetson-graphql-api:${SF_VERSION} - privileged: true - container_name: SFGraphQLApi - restart: unless-stopped - ports: - # we forward the configured ports to default SF ports - - 8097:${Hosting__Port} - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - ConnectionStrings__CoreDbContext - - Database__DbEngine - - Hosting__Host - - Hosting__Port - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - JAEGER_AGENT_HOST - - AppSettings__Log_RabbitMq_Enabled - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - runtime: nvidia - - odata-api: - image: ${REGISTRY}sf-jetson-odata-api:${SF_VERSION} - privileged: true - container_name: SFODataApi - restart: unless-stopped - ports: - # we forward the configured ports to default SF ports - - 8099:${Hosting__Port} - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - ConnectionStrings__CoreDbContext - - Database__DbEngine - - Hosting__Host - - Hosting__Port - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - JAEGER_AGENT_HOST - - S3Bucket__Endpoint - - S3Bucket__BucketName - - S3Bucket__AccessKey - - S3Bucket__SecretKey - - NoSqlDataStorageDisabled - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - runtime: nvidia - - detector-cpu: - image: ${REGISTRY}sf-jetson-detector:${SF_VERSION} - privileged: true - container_name: SFDetectCpu - restart: unless-stopped - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - JAEGER_AGENT_HOST - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - runtime: nvidia - - detector-gpu: - image: ${REGISTRY}sf-jetson-detector:${SF_VERSION} - privileged: true - container_name: SFDetectGpu - restart: unless-stopped - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - JAEGER_AGENT_HOST - - Gpu__GpuEnabled=true - # - Gpu__GpuNeuralRuntime=Tensor - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - # - "/var/tmp/innovatrics/tensor-rt:/var/tmp/innovatrics/tensor-rt" - runtime: nvidia - - pedestrian-detector-cpu: - image: ${REGISTRY}sf-jetson-pedestrian-detector:${SF_VERSION} - privileged: true - container_name: SFPedestrianDetectCpu - restart: unless-stopped - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - JAEGER_AGENT_HOST - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - runtime: nvidia - - pedestrian-detector-gpu: - image: ${REGISTRY}sf-jetson-pedestrian-detector:${SF_VERSION} - privileged: true - container_name: SFPedestrianDetectGpu - restart: unless-stopped - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - JAEGER_AGENT_HOST - - Gpu__GpuEnabled=true - # - Gpu__GpuNeuralRuntime=Tensor - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - # - "/var/tmp/innovatrics/tensor-rt:/var/tmp/innovatrics/tensor-rt" - runtime: nvidia - - extractor-cpu: - image: ${REGISTRY}sf-jetson-extractor:${SF_VERSION} - privileged: true - container_name: SFExtractCpu - restart: unless-stopped - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - JAEGER_AGENT_HOST - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - runtime: nvidia - - extractor-gpu: - image: ${REGISTRY}sf-jetson-extractor:${SF_VERSION} - privileged: true - container_name: SFExtractGpu - restart: unless-stopped - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - JAEGER_AGENT_HOST - - Gpu__GpuEnabled=true - # - Gpu__GpuNeuralRuntime=Tensor - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - # - "/var/tmp/innovatrics/tensor-rt:/var/tmp/innovatrics/tensor-rt" - runtime: nvidia - - matcher: - image: ${REGISTRY}sf-jetson-matcher:${SF_VERSION} - privileged: true - container_name: SFWatchlistMatcher - restart: unless-stopped - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - ConnectionStrings__CoreDbContext - - Database__DbEngine - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - JAEGER_AGENT_HOST - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - runtime: nvidia - - face-matcher: - image: ${REGISTRY}sf-jetson-face-matcher:${SF_VERSION} - privileged: true - container_name: SFFaceMatcher - restart: unless-stopped - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - ConnectionStrings__CoreDbContext - - Database__DbEngine - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - JAEGER_AGENT_HOST - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - runtime: nvidia - - liveness-cpu: - image: ${REGISTRY}sf-jetson-liveness:${SF_VERSION} - privileged: true - container_name: SFLivenessCpu - restart: unless-stopped - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - JAEGER_AGENT_HOST - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - runtime: nvidia - - liveness-gpu: - image: ${REGISTRY}sf-jetson-liveness:${SF_VERSION} - privileged: true - container_name: SFLivenessGpu - restart: unless-stopped - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - JAEGER_AGENT_HOST - - Gpu__GpuEnabled=true - # - Gpu__GpuNeuralRuntime=Tensor - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - # - "/var/tmp/innovatrics/tensor-rt:/var/tmp/innovatrics/tensor-rt" - runtime: nvidia - - video-aggregator: - image: ${REGISTRY}sf-jetson-video-aggregator:${SF_VERSION} - privileged: true - container_name: SFVideoDataAggregator - restart: unless-stopped - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - ConnectionStrings__CoreDbContext - - Database__DbEngine - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - JAEGER_AGENT_HOST - - S3Bucket__Endpoint - - S3Bucket__BucketName - - S3Bucket__AccessKey - - S3Bucket__SecretKey - - NoSqlDataStorageDisabled - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - runtime: nvidia - - video-collector: - image: ${REGISTRY}sf-jetson-video-collector:${SF_VERSION} - privileged: true - container_name: SFVideoDataCollector - restart: unless-stopped - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - ConnectionStrings__CoreDbContext - - Database__DbEngine - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - JAEGER_AGENT_HOST - - S3Bucket__Endpoint - - S3Bucket__BucketName - - S3Bucket__AccessKey - - S3Bucket__SecretKey - - NoSqlDataStorageDisabled - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - - video-reader: - image: ${REGISTRY}sf-jetson-video-reader:${SF_VERSION} - privileged: true - container_name: SFVideoReader - restart: unless-stopped - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - S3Bucket__Endpoint - - S3Bucket__BucketName - - S3Bucket__AccessKey - - S3Bucket__SecretKey - - JAEGER_AGENT_HOST - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - runtime: nvidia - - edge-stream-processor: - image: ${REGISTRY}sf-jetson-edge-stream-processor:${SF_VERSION} - privileged: true - container_name: SFEdgeStreamProcessor - restart: unless-stopped - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - ConnectionStrings__CoreDbContext - - Database__DbEngine - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__Log_RabbitMq_Enabled - - NoSqlDataStorageDisabled - - OperationMode__MatchingDataStrategy - - OperationMode__LivenessDataStrategy - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - runtime: nvidia - - edge-streams-state-synchronizer: - image: ${REGISTRY}sf-jetson-edge-streams-state-synchronizer:${SF_VERSION} - container_name: SFEdgeStreamsStateSynchronizer - restart: unless-stopped - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - RabbitMQ__StreamsPort - - MQTT__Hostname - - MQTT__Username - - MQTT__Password - - MQTT__Port - - MQTT__UseSsl - - ConnectionStrings__CoreDbContext - - Database__DbEngine - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__Log_RabbitMq_Enabled - - Rpc__TimeoutMs - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - - access-controller: - image: ${REGISTRY}sf-access-controller:${AC_VERSION} - privileged: true - container_name: SFAccessController - restart: unless-stopped - ports: - # we forward the configured ports to default SF ports - - 5050:${Hosting__Port} - environment: - - RabbitMq__HostName=${RabbitMQ__Hostname} - - RabbitMq__UserName=${RabbitMQ__Username} - - RabbitMq__Password=${RabbitMQ__Password} - - RabbitMq__VirtualHost=${RabbitMQ__VirtualHost} - - RabbitMq__UseSsl=${RabbitMQ__UseSsl} - - RabbitMq__Port=${RabbitMQ__Port} - - Kestrel__EndPoints__Http__Url=${Hosting__Host}:${Hosting__Port} - env_file: .env.sfac - - sf-station: - image: ${REGISTRY}sf-station:${SFS_VERSION} - container_name: SFStation - restart: unless-stopped - ports: - - 8000:8000 - env_file: .env.sfstation - -networks: - default: - external: - name: sf-network diff --git a/sf-docker/nvidia-jetson/run.sh b/sf-docker/nvidia-jetson/run.sh deleted file mode 100755 index 0e6b8044..00000000 --- a/sf-docker/nvidia-jetson/run.sh +++ /dev/null @@ -1,81 +0,0 @@ -#!/bin/bash - -set -x -set -e - -if [ ! -f iengine.lic ]; then - echo "License file not found. Please make sure that the license file is present in the current directory." >&2 - exit 1 -fi - -COMPOSE_COMMAND="docker compose" - -set +e - -$COMPOSE_COMMAND version - -if [ $? -ne 0 ]; then - COMPOSE_COMMAND="docker-compose" - $COMPOSE_COMMAND version - if [ $? -ne 0 ]; then - echo "No compose command found. Please install docker compose" >&2 - exit 1 - fi -fi - -set -e - -# sf-network is used so that sf-dependencies and sf containers can communicate -# this can fail if the network already exists, but we don't mind that -docker network create sf-network || true - -# start dependencies of SF - PgSql, RMQ and minio -chmod go+rx sf_dependencies/etc_rmq -chmod go+r sf_dependencies/etc_rmq/* -$COMPOSE_COMMAND -f sf_dependencies/docker-compose.yml up -d - -# sleep to wait for the dependencies to start up -sleep 30 - -getvalue() { - local key="$1" - local value=$(grep -E ^${key}= .env | cut -d '=' -f2- | cut -d$'\r' -f1) - echo "$value" -} - -# load version and registry from .env -VERSION="$(getvalue SF_VERSION)" -REGISTRY="$(getvalue REGISTRY)" - -SF_ADMIN_IMAGE=${REGISTRY}sf-jetson-admin:${VERSION} - -# we use the DB engine that will be used by SF to create and migrate the DB -# to switch DB engine, change the .env file -DB_ENGINE="$(getvalue Database__DbEngine)" - -# set correct hostname to sfstation env file -sed -i "s/S3_PUBLIC_ENDPOINT=.*/S3_PUBLIC_ENDPOINT=http:\/\/$(hostname):9000/g" .env.sfstation - -echo $VERSION -echo $REGISTRY - -# create mqtt user for rmq mqtt plugin -docker exec -it rmq /opt/rabbitmq/sbin/rabbitmqctl add_user mqtt mqtt || true -docker exec -it rmq /opt/rabbitmq/sbin/rabbitmqctl set_user_tags mqtt administrator || true -docker exec -it rmq /opt/rabbitmq/sbin/rabbitmqctl set_permissions -p "/" mqtt ".*" ".*" ".*" || true - -# create SmartFace database in PgSql -docker exec pgsql psql -U postgres -c "CREATE DATABASE smartface" || true -# run database migration to current version - docker run --rm --name admin_migration --volume $(pwd)/iengine.lic:/etc/innovatrics/iengine.lic --network sf-network ${SF_ADMIN_IMAGE} \ - run-migration \ - -p "$(getvalue CameraServicesCount)" \ - -c "$(getvalue ConnectionStrings__CoreDbContext)" -dbe $DB_ENGINE \ - --rmq-host "$(getvalue RabbitMQ__Hostname)" --rmq-user "$(getvalue RabbitMQ__Username)" --rmq-pass "$(getvalue RabbitMQ__Password)" \ - --rmq-virtual-host "$(getvalue RabbitMQ__VirtualHost)" --rmq-port "$(getvalue RabbitMQ__Port)" --rmq-use-ssl "$(getvalue RabbitMQ__UseSsl)" - -docker run --rm --name s3-bucket-create --network sf-network ${SF_ADMIN_IMAGE} \ - ensure-s3-bucket-exists --endpoint "$(getvalue S3Bucket__Endpoint)" --access-key "$(getvalue S3Bucket__AccessKey)" --secret-key "$(getvalue S3Bucket__SecretKey)" --bucket-name "$(getvalue S3Bucket__BucketName)" - -# finally start SF images -$COMPOSE_COMMAND -f docker-compose.yml up -d --force-recreate \ No newline at end of file diff --git a/sf-docker/nvidia-jetson/sf_dependencies/docker-compose.yml b/sf-docker/nvidia-jetson/sf_dependencies/docker-compose.yml deleted file mode 100644 index 12752a51..00000000 --- a/sf-docker/nvidia-jetson/sf_dependencies/docker-compose.yml +++ /dev/null @@ -1,53 +0,0 @@ -version: '3' -services: - pgsql: - image: "postgres:14.3" - container_name: pgsql - restart: unless-stopped - ports: - - "5432:5432" - environment: - - POSTGRES_PASSWORD=Test1234 - volumes: - - pgsqldata:/var/lib/postgresql/data - #- /var/lib/smartface/pgsql:/var/lib/postgresql/data - - rabbitmq: - image: "rabbitmq:3.12.11-management" - container_name: rmq - ports: - - "15672:15672" - - "5672:5672" - - "1883:1883" - - "5552:5552/tcp" - environment: - RABBITMQ_NODENAME: rabbit@rmq - RABBITMQ_CONFIG_FILE: /etc/rabbitmq/external/rabbitmq.conf - RABBITMQ_ENABLED_PLUGINS_FILE: /etc/rabbitmq/external/enabled_plugins - RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS: -rabbitmq_stream advertised_host rmq - volumes: - - ./etc_rmq/:/etc/rabbitmq/external - - rmqdata:/var/lib/rabbitmq - restart: unless-stopped - - minio: - image: "minio/minio:RELEASE.2022-06-02T02-11-04Z" - container_name: minio - command: server /data --console-address ":9001" - restart: unless-stopped - ports: - - "9000:9000" - - "9001:9001" - volumes: - - miniodata:/data - #- /var/lib/smartface/miniodata:/data - -volumes: - pgsqldata: - miniodata: - rmqdata: - -networks: - default: - external: - name: sf-network diff --git a/sf-docker/nvidia-jetson/sf_dependencies/etc_rmq/enabled_plugins b/sf-docker/nvidia-jetson/sf_dependencies/etc_rmq/enabled_plugins deleted file mode 100644 index 5dcbd870..00000000 --- a/sf-docker/nvidia-jetson/sf_dependencies/etc_rmq/enabled_plugins +++ /dev/null @@ -1 +0,0 @@ -[rabbitmq_management,rabbitmq_mqtt,rabbitmq_prometheus,rabbitmq_stream,rabbitmq_stream_management]. \ No newline at end of file diff --git a/sf-docker/nvidia-jetson/sf_dependencies/etc_rmq/rabbitmq.conf b/sf-docker/nvidia-jetson/sf_dependencies/etc_rmq/rabbitmq.conf deleted file mode 100644 index 020a9cc5..00000000 --- a/sf-docker/nvidia-jetson/sf_dependencies/etc_rmq/rabbitmq.conf +++ /dev/null @@ -1,8 +0,0 @@ -## Consumer timeout -## If a message delivered to a consumer has not been acknowledge before this timer -## triggers the channel will be force closed by the broker. This ensure that -## faultly consumers that never ack will not hold on to messages indefinitely. -## 6 hours = 21600000 ms -consumer_timeout = 21600000 - -mqtt.allow_anonymous = false \ No newline at end of file diff --git a/sf-docker/special/jetson-LFIS/.env b/sf-docker/special/jetson-LFIS/.env deleted file mode 100644 index b104a393..00000000 --- a/sf-docker/special/jetson-LFIS/.env +++ /dev/null @@ -1,62 +0,0 @@ -# RMQ config -RabbitMQ__Hostname=rmq -RabbitMQ__Username=guest -RabbitMQ__Password=guest -RabbitMQ__VirtualHost=/ -RabbitMQ__Port=5672 -RabbitMQ__UseSsl=false -RabbitMQ__StreamsPort=5552 - -# MQTT config -MQTT__Hostname=rmq -MQTT__Username=guest -MQTT__Password=guest -MQTT__Port=1883 -MQTT__UseSsl=false - -# Database config -#Database__DbEngine=MsSql -#ConnectionStrings__CoreDbContext=Server=mssql;Database=SmartFace;User ID=sa;Password=Test1234;TrustServerCertificate=true; -Database__DbEngine=PgSql -ConnectionStrings__CoreDbContext=Server=pgsql;Database=smartface;Username=postgres;Password=Test1234;Trust Server Certificate=true; - -# S3 config -S3Bucket__Endpoint=http://minio:9000 -S3Bucket__BucketName=inno-smartface -S3Bucket__AccessKey=minioadmin -S3Bucket__SecretKey=minioadmin - -# Set true when a Jaeger tracing is required -AppSettings__USE_JAEGER_APP_SETTINGS=false - -# Jaeger tracing endpoint. 'jaeger' is the name of included docker container. -# If targeting outside SmartFace docker, change to remote URL -JAEGER_AGENT_HOST=jaeger - -# API config - we use port 80 in docker and forward it as needed -Hosting__Host=http://0.0.0.0 -Hosting__Port=80 - -# Using NoSql database -NoSqlDataStorageDisabled=false - -# Edge stream processor operation modes -OperationMode__MatchingDataStrategy=ServerOnly -OperationMode__LivenessDataStrategy=ServerOnly - -# Using template for Gstreamer pipeline -#linux -GstPipelineTemplate=uridecodebin uri={0} source::latency=0 ! queue max-size-buffers=1 leaky=downstream ! nvvideoconvert ! video/x-raw, format=(string)BGRx ! videoconvert ! video/x-raw, format=(string)BGR ! appsink -#jetson -GstPipelineTemplate_Jetson=uridecodebin uri={0} source::latency=0 ! queue max-size-buffers=1 leaky=downstream ! nvvidconv ! video/x-raw, format=(string)BGRx ! videoconvert ! video/x-raw, format=(string)BGR ! appsink - -# Registry, must end with a forward slash `/` -REGISTRY=registry.gitlab.com/innovatrics/smartface/ - -# Version -SF_VERSION=v5_4.24.0 -AC_VERSION=v5_1.10.0 -SFS_VERSION=v5_1.23.0 - -# MQTT RPC timeout -Rpc__TimeoutMs=10000 \ No newline at end of file diff --git a/sf-docker/special/jetson-LFIS/.env.sfac b/sf-docker/special/jetson-LFIS/.env.sfac deleted file mode 100644 index 1915e34d..00000000 --- a/sf-docker/special/jetson-LFIS/.env.sfac +++ /dev/null @@ -1,47 +0,0 @@ -FilterConfiguration__FaceOrderConfiguration__Enabled=false -FilterConfiguration__FaceOrderConfiguration__Order=1 - -FilterConfiguration__OpeningDebounceConfiguration__OpeningDebounceEnabled=true -FilterConfiguration__OpeningDebounceConfiguration__OpeningDebounceMs=4000 - -FilterConfiguration__BlockingDebounceConfiguration__BlockingDebounceEnabled=true -FilterConfiguration__BlockingDebounceConfiguration__BlockingDebounceMs=4000 - -FilterConfiguration__ExclusiveCameraConfiguration__Enabled=true -FilterConfiguration__ExclusiveCameraConfiguration__ExclusivityMs=5000 - -FilterConfiguration__NotIdentifiedPersonConfiguration__Enabled=true -FilterConfiguration__NotIdentifiedPersonConfiguration__RoamingLimitTimeMs=3000 - -FilterConfiguration__BlacklistsConfiguration__Enabled=true -FilterConfiguration__BlacklistsConfiguration__Blacklists__0=firt_black_list_id -FilterConfiguration__BlacklistsConfiguration__Blacklists__1=second_black_list_id -FilterConfiguration__BlacklistsConfiguration__Blacklists__2=third_black_list_id - -FilterConfiguration__FaceMaskConfiguration__Enabled=false -FilterConfiguration__FaceMaskConfiguration__DenyingDebounceMs=4000 - -FilterConfiguration__IntentionalAccessConfiguration__Enabled=false -FilterConfiguration__IntentionalAccessConfiguration__AlwaysOpenForFaceSizeLargerThan=160 -FilterConfiguration__IntentionalAccessConfiguration__PredictionMilliseconds=1500 - -FilterConfiguration__StreamGroupsConfiguration__Enabled=true -FilterConfiguration__StreamGroupsConfiguration__GroupOpeningDebounceMs=3000 - -FilterConfiguration__SpoofCheckConfiguration__Enabled=false -FilterConfiguration__SpoofCheckConfiguration__DenyingDebounceMs=4000 - -# Set true when a Jaeger tracing is required -AppSettings__0__Key=USE_JAEGER_APP_SETTINGS -AppSettings__0__Value=false - -AppSettings__1__Key=JAEGER_SAMPLER_TYPE -AppSettings__1__Value=const - -AppSettings__2__Key=JAEGER_SAMPLER_PARAM -AppSettings__2__Value=1 - -# Jaeger tracing endpoint. 'jaeger' is the name of included docker container. -# If targeting outside SmartFace docker, change to remote URL -AppSettings__3__Key=JAEGER_AGENT_HOST -AppSettings__3__Value=jaeger \ No newline at end of file diff --git a/sf-docker/special/jetson-LFIS/.env.sfstation b/sf-docker/special/jetson-LFIS/.env.sfstation deleted file mode 100644 index 8ecb4f0d..00000000 --- a/sf-docker/special/jetson-LFIS/.env.sfstation +++ /dev/null @@ -1,84 +0,0 @@ -# IP address, where SmartFace Station server will bind to -HOST=0.0.0.0 - -# Port number, where SmartFace Station server will bind to -PORT=8000 - -# Full addresses to SmartFace Server APIs -# CORE API example: http://[sf-server-host]:[port]/api/v1 -CORE_API_ROOT=http://SFWatchlistApi:80/api/v1 - -# ODATA API example: http://[sf-server-host]:[port] -ODATA_API_ROOT=http://SFODataApi:80 - -# ZERO_MQ_HOST example: [sf-server-host] -ZERO_MQ_HOST=SFBase - -# Full address to SmartFace Server GraphQL APIs -GRAPHQL_ROOT=http://SFGraphQLApi:80/graphql - -# example: CAM_PREVIEW_HOST_[camera.serviceName]=[sf-camera-host] -CAM_PREVIEW_HOST_SFCAM1=SFCam1 -CAM_PREVIEW_HOST_SFCAM2=SFCam2 -CAM_PREVIEW_HOST_SFCAM3=SFCam3 -CAM_PREVIEW_HOST_SFCAM4=SFCam4 -CAM_PREVIEW_HOST_SFCAM5=SFCam5 - -# Address to Access Controller gRPC endpoint -# Example: [sf-server-host]:[port] -ACCESS_CONTROLLER_ADDRESS=SFAccessController:80 - -# Comma separated Watchlist IDs used as a global blacklists -BLACKLIST_WATCHLIST_IDS=abcdabcd-abcd-1234-abcd-abcdabcdacd - -# Whether to run with Keycloak authentication server or not -ENABLE_AUTHENTICATION=false - -# Full URL address to Keycloak's users management (if empty no url will be shown in webapp configuration) -KEYCLOAK_ADMIN_URL=http://keycloak-host:8080/auth/admin - -# In case of unauthorize access user will be redirected to provided URL (eg. keycloack login) -# If URL is not provided No access page will be shown -UNAUTHORIZE_ACCESS_REDIRECTION_URL=http://keycloak.login - -# Score to percentage conversion parameters -SCORE_CONVERSION_LOWER_LIMIT=20 -SCORE_CONVERSION_LOWER_LIMIT_PERCENTAGE=30 -SCORE_CONVERSION_UPPER_LIMIT=40 -SCORE_CONVERSION_UPPER_LIMIT_PERCENTAGE=90 - -# DOT camera parameters (HTTPS is required) -DOT_FACE_CAMERA_ENABLED=false -DOT_FACE_CAMERA_FACE_CENTER_LIMIT=0.2 -DOT_FACE_CAMERA_FACE_CONFIDENCE=0.06 - -# Wether to run with HTTPS authentication server or not -HTTPS_ENABLED=false -HTTPS_HOST_NAME= -HTTPS_KEY_FILE=server.key -HTTPS_CERT_FILE=server.cert - -# Add optional labels to watclist member (key is used in API requests, label is visual representation of key and used only in station frontend) -# WATCHLIST_MEMBER_KEY_0=date -# WATCHLIST_MEMBER_LABEL_0=Date of birth -# WATCHLIST_MEMBER_KEY_1=tax_number -# WATCHLIST_MEMBER_LABEL_1=Tax number -# WATCHLIST_MEMBER_KEY_2=phone -# WATCHLIST_MEMBER_LABEL_2=Phone number - -# Optional roles are used for locking specified part of frontend for given roles -# Claim name is "Group mapper name" specified in Keycloak or "cognito:groups" in Cognito -# ROLES_CLAIM_NAME=sf_roles -# ROLE_KEY_ADMIN=/admin -# ROLE_KEY_SECURITY_SUPERVISOR=/security_supervisor -# ROLE_KEY_SECURITY_OPERATOR=/security_operator -# ROLE_KEY_ACCESS_SUPERVISOR=/access_supervisor -# ROLE_KEY_ACCESS_OPERATOR=/access_operator - -# Enabled featureset -FeatureManagement__Watchlist=true -FeatureManagement__Edge=false -FeatureManagement__Full=false - -# Enabled Identification page -IDENTIFICATION_ENABLED=true \ No newline at end of file diff --git a/sf-docker/special/jetson-LFIS/README.md b/sf-docker/special/jetson-LFIS/README.md deleted file mode 100644 index 1a9bed03..00000000 --- a/sf-docker/special/jetson-LFIS/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# SmartFace Lightweight Facial Identification Service - -## Deployment -1. Install `Docker` and `docker compose` on the host machine. -2. Login to container registry `docker login registry.gitlab.com -u -p `. The credentials are available in our [Customer Portal](https://customerportal.innovatrics.com/). -3. Identify hardware id (hwid) for your machine with command `docker run registry.gitlab.com/innovatrics/smartface/license-manager:3.2.7`. This process work for native linux, for `WSL2` eg. linux containers on Windows you need special license for which you need to contact our sales. -4. Obtain license for your hwid from our Customer Portal https://customerportal.innovatrics.com/ -5. Copy the license file `iengine.lic` to the root of this directory. -6. Run `run.sh` script. The run scripts contain comments which should clarify the steps needed to start everything \ No newline at end of file diff --git a/sf-docker/special/jetson-LFIS/docker-compose.yml b/sf-docker/special/jetson-LFIS/docker-compose.yml deleted file mode 100644 index 10b7d320..00000000 --- a/sf-docker/special/jetson-LFIS/docker-compose.yml +++ /dev/null @@ -1,216 +0,0 @@ -version: '3.4' -services: - detector-cpu: - image: ${REGISTRY}sf-jetson-detector:${SF_VERSION} - privileged: true - container_name: SFDetectCpu - restart: unless-stopped - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - JAEGER_AGENT_HOST - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - runtime: nvidia - - detector-gpu: - image: ${REGISTRY}sf-jetson-detector:${SF_VERSION} - privileged: true - container_name: SFDetectGpu - restart: unless-stopped - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - JAEGER_AGENT_HOST - - Gpu__GpuEnabled=true - # - Gpu__GpuNeuralRuntime=Tensor - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - # - "/var/tmp/innovatrics/tensor-rt:/var/tmp/innovatrics/tensor-rt" - runtime: nvidia - - extractor-cpu: - image: ${REGISTRY}sf-jetson-extractor:${SF_VERSION} - privileged: true - container_name: SFExtractCpu - restart: unless-stopped - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - JAEGER_AGENT_HOST - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - runtime: nvidia - - extractor-gpu: - image: ${REGISTRY}sf-jetson-extractor:${SF_VERSION} - privileged: true - container_name: SFExtractGpu - restart: unless-stopped - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - JAEGER_AGENT_HOST - - Gpu__GpuEnabled=true - # - Gpu__GpuNeuralRuntime=Tensor - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - # - "/var/tmp/innovatrics/tensor-rt:/var/tmp/innovatrics/tensor-rt" - runtime: nvidia - - matcher: - image: ${REGISTRY}sf-jetson-matcher:${SF_VERSION} - privileged: true - container_name: SFWatchlistMatcher - restart: unless-stopped - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - ConnectionStrings__CoreDbContext - - Database__DbEngine - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - JAEGER_AGENT_HOST - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - runtime: nvidia - - liveness-cpu: - image: ${REGISTRY}sf-jetson-liveness:${SF_VERSION} - privileged: true - container_name: SFLivenessCpu - restart: unless-stopped - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - JAEGER_AGENT_HOST - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - runtime: nvidia - - liveness-gpu: - image: ${REGISTRY}sf-jetson-liveness:${SF_VERSION} - privileged: true - container_name: SFLivenessGpu - restart: unless-stopped - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - JAEGER_AGENT_HOST - - Gpu__GpuEnabled=true - # - Gpu__GpuNeuralRuntime=Tensor - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - # - "/var/tmp/innovatrics/tensor-rt:/var/tmp/innovatrics/tensor-rt" - runtime: nvidia - - watchlist-api: - image: ${REGISTRY}sf-jetson-api:${SF_VERSION} - privileged: true - container_name: SFWatchlistApi - restart: unless-stopped - ports: - # we forward the configured ports to default SF ports - - 8098:${Hosting__Port} - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - Database__DbEngine - - ConnectionStrings__CoreDbContext - - Hosting__Host - - Hosting__Port - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - JAEGER_AGENT_HOST - - S3Bucket__Endpoint - - S3Bucket__BucketName - - S3Bucket__AccessKey - - S3Bucket__SecretKey - - NoSqlDataStorageDisabled - - FeatureManagement__Watchlist=true - - FeatureManagement__Full=false - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - runtime: nvidia - - sf-station: - image: ${REGISTRY}sf-station:${SFS_VERSION} - container_name: SFStation - restart: unless-stopped - ports: - - 8000:8000 - env_file: .env.sfstation - - sf-graphql-api: - image: ${REGISTRY}sf-jetson-graphql-api:${SF_VERSION} - container_name: SFGraphQLApi - ports: - # we forward the configured ports to default SF ports - - 8097:${Hosting__Port} - restart: unless-stopped - environment: - - RabbitMQ__Hostname - - RabbitMQ__Username - - RabbitMQ__Password - - RabbitMQ__Port - - RabbitMQ__VirtualHost - - RabbitMQ__UseSsl - - ConnectionStrings__CoreDbContext - - Database__DbEngine - - Hosting__Host - - Hosting__Port - - AppSettings__Log_RollingFile_Enabled=false - - AppSettings__USE_JAEGER_APP_SETTINGS - - JAEGER_AGENT_HOST - - AppSettings__Log_RabbitMq_Enabled - volumes: - - "./iengine.lic:/etc/innovatrics/iengine.lic" - -networks: - default: - external: - name: sf-network \ No newline at end of file diff --git a/sf-docker/special/jetson-LFIS/run.sh b/sf-docker/special/jetson-LFIS/run.sh deleted file mode 100644 index 53eae65c..00000000 --- a/sf-docker/special/jetson-LFIS/run.sh +++ /dev/null @@ -1,71 +0,0 @@ -#!/bin/bash - -set -x -set -e - -if [ ! -f iengine.lic ]; then - echo "License file not found. Please make sure that the license file is present in the current directory." >&2 - exit 1 -fi - -COMPOSE_COMMAND="docker compose" - -set +e - -$COMPOSE_COMMAND version - -if [ $? -ne 0 ]; then - COMPOSE_COMMAND="docker-compose" - $COMPOSE_COMMAND version - if [ $? -ne 0 ]; then - echo "No compose command found. Please install docker compose" >&2 - exit 1 - fi -fi - -set -e -# sf-network is used so that sf-dependencies and sf containers can communicate -# this can fail if the network already exists, but we don't mind that -docker network create sf-network || true - -# start dependencies of SF - PgSql, RMQ and minio -chmod go+rx sf_dependencies/etc_rmq -chmod go+r sf_dependencies/etc_rmq/* -$COMPOSE_COMMAND -f sf_dependencies/docker-compose.yml up -d - -# sleep to wait for the dependencies to start up -sleep 10 - -getvalue() { - local key="$1" - local value=$(grep -E ^${key}= .env | cut -d '=' -f2- | cut -d$'\r' -f1) - echo "$value" -} - -# load version and registry from .env -VERSION="$(getvalue SF_VERSION)" -REGISTRY="$(getvalue REGISTRY)" - -SF_ADMIN_IMAGE=${REGISTRY}sf-jetson-admin:${VERSION} - -# we use the DB engine that will be used by SF to create and migrate the DB -# to switch DB engine, change the .env file -DB_ENGINE="$(getvalue Database__DbEngine)" - -echo $VERSION -echo $REGISTRY - -# create SmartFace database in PgSql -docker exec pgsql psql -U postgres -c "CREATE DATABASE smartface" || true -# run database migration to current version -docker run --rm --name admin_migration --volume $(pwd)/iengine.lic:/etc/innovatrics/iengine.lic --network sf-network ${SF_ADMIN_IMAGE} \ - run-migration \ - -p 5 -c "$(getvalue ConnectionStrings__CoreDbContext)" -dbe $DB_ENGINE \ - --rmq-host "$(getvalue RabbitMQ__Hostname)" --rmq-user "$(getvalue RabbitMQ__Username)" --rmq-pass "$(getvalue RabbitMQ__Password)" \ - --rmq-virtual-host "$(getvalue RabbitMQ__VirtualHost)" --rmq-port "$(getvalue RabbitMQ__Port)" --rmq-use-ssl "$(getvalue RabbitMQ__UseSsl)" - -docker run --rm --name s3-bucket-create --network sf-network ${SF_ADMIN_IMAGE} \ - ensure-s3-bucket-exists --endpoint "$(getvalue S3Bucket__Endpoint)" --access-key "$(getvalue S3Bucket__AccessKey)" --secret-key "$(getvalue S3Bucket__SecretKey)" --bucket-name "$(getvalue S3Bucket__BucketName)" - -# finally start SF images -$COMPOSE_COMMAND -f docker-compose.yml up -d --force-recreate \ No newline at end of file diff --git a/sf-docker/special/jetson-LFIS/sf_dependencies/docker-compose.yml b/sf-docker/special/jetson-LFIS/sf_dependencies/docker-compose.yml deleted file mode 100644 index f7b7f98a..00000000 --- a/sf-docker/special/jetson-LFIS/sf_dependencies/docker-compose.yml +++ /dev/null @@ -1,80 +0,0 @@ -version: '3' -services: - pgsql: - image: "postgres:14.3" - container_name: pgsql - ports: - - "5432:5432" - environment: - - POSTGRES_PASSWORD=Test1234 - restart: unless-stopped - volumes: - - pgsqldata:/var/lib/postgresql/data - #- /var/lib/smartface/pgsql:/var/lib/postgresql/data - - pgadmin: - image: "dpage/pgadmin4:6.10" - container_name: pgadmin - environment: - PGADMIN_DEFAULT_EMAIL: admin@admin.com - PGADMIN_DEFAULT_PASSWORD: Test1234 - ports: - - "7070:80" - - rabbitmq: - image: "rabbitmq:3.12.11-management" - container_name: rmq - ports: - - "15672:15672" - - "5672:5672" - - "1883:1883" - - "5552:5552/tcp" - environment: - RABBITMQ_NODENAME: rabbit@rmq - RABBITMQ_CONFIG_FILE: /etc/rabbitmq/external/rabbitmq.conf - RABBITMQ_ENABLED_PLUGINS_FILE: /etc/rabbitmq/external/enabled_plugins - RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS: -rabbitmq_stream advertised_host rmq - volumes: - - ./etc_rmq/:/etc/rabbitmq/external - - rmqdata:/var/lib/rabbitmq - restart: unless-stopped - - minio: - image: "minio/minio:RELEASE.2022-06-02T02-11-04Z" - container_name: minio - command: server /data --console-address ":9001" - ports: - - "9000:9000" - - "9001:9001" - restart: unless-stopped - volumes: - - miniodata:/data - #- /var/lib/smartface/miniodata:/data - - # Jaeger tracikng is solely for debug purposes. No data is stored! - jaeger: - image: "jaegertracing/all-in-one:1.35.0" - container_name: jaeger - restart: unless-stopped - command: [ "--memory.max-traces=5000" ] - ports: - - "5778:5778" - - "16686:16686" - - "14268:14268" - - "14250:14250" - - "9411:9411" - - "5775:5775/udp" - - "6831:6831/udp" - - "6832:6832/udp" - -volumes: - mssqldata: - pgsqldata: - miniodata: - rmqdata: - - -networks: - default: - external: - name: sf-network diff --git a/sf-docker/special/jetson-LFIS/sf_dependencies/etc_rmq/enabled_plugins b/sf-docker/special/jetson-LFIS/sf_dependencies/etc_rmq/enabled_plugins deleted file mode 100644 index 5dcbd870..00000000 --- a/sf-docker/special/jetson-LFIS/sf_dependencies/etc_rmq/enabled_plugins +++ /dev/null @@ -1 +0,0 @@ -[rabbitmq_management,rabbitmq_mqtt,rabbitmq_prometheus,rabbitmq_stream,rabbitmq_stream_management]. \ No newline at end of file diff --git a/sf-docker/special/jetson-LFIS/sf_dependencies/etc_rmq/rabbitmq.conf b/sf-docker/special/jetson-LFIS/sf_dependencies/etc_rmq/rabbitmq.conf deleted file mode 100644 index 020a9cc5..00000000 --- a/sf-docker/special/jetson-LFIS/sf_dependencies/etc_rmq/rabbitmq.conf +++ /dev/null @@ -1,8 +0,0 @@ -## Consumer timeout -## If a message delivered to a consumer has not been acknowledge before this timer -## triggers the channel will be force closed by the broker. This ensure that -## faultly consumers that never ack will not hold on to messages indefinitely. -## 6 hours = 21600000 ms -consumer_timeout = 21600000 - -mqtt.allow_anonymous = false \ No newline at end of file