diff --git a/deploy/portainer/docker-compose.yml b/deploy/portainer/docker-compose.yml new file mode 100644 index 00000000..384cd4d5 --- /dev/null +++ b/deploy/portainer/docker-compose.yml @@ -0,0 +1,103 @@ +version: "3.8" + +# Set LINGNIU_IMAGE_VERSION in Portainer Stack env, for example: +# main-0.1.0-SNAPSHOT-22468e7 +x-common-env: &common-env + TZ: Asia/Shanghai + JAVA_OPTS: ${JAVA_OPTS:--XX:+UseZGC -XX:MaxRAMPercentage=75} + NACOS_CONFIG_ENABLED: ${NACOS_CONFIG_ENABLED:-true} + NACOS_SERVER_ADDR: ${NACOS_SERVER_ADDR:-127.0.0.1:8848} + NACOS_NAMESPACE: ${NACOS_NAMESPACE:-} + NACOS_GROUP: ${NACOS_GROUP:-DEFAULT_GROUP} + NACOS_CONFIG_FILE_EXTENSION: ${NACOS_CONFIG_FILE_EXTENSION:-yml} + NACOS_REFRESH_ENABLED: ${NACOS_REFRESH_ENABLED:-true} + NACOS_USERNAME: ${NACOS_USERNAME:-} + NACOS_PASSWORD: ${NACOS_PASSWORD:-} + KAFKA_BROKERS: ${KAFKA_BROKERS:-114.55.58.251:9092} + KAFKA_ENABLED: ${KAFKA_ENABLED:-true} + KAFKA_CONSUMER_ENABLED: ${KAFKA_CONSUMER_ENABLED:-true} + KAFKA_TOPIC_GB32960_EVENT: ${KAFKA_TOPIC_GB32960_EVENT:-vehicle.event.gb32960.v1} + KAFKA_TOPIC_GB32960_RAW: ${KAFKA_TOPIC_GB32960_RAW:-vehicle.raw.gb32960.v1} + KAFKA_TOPIC_GB32960_DLQ: ${KAFKA_TOPIC_GB32960_DLQ:-vehicle.dlq.gb32960.v1} + +services: + gb32960-ingest-app: + image: harbor.lnh2e.com/lingniu-v1/gb32960-ingest-app:${LINGNIU_IMAGE_VERSION:?set LINGNIU_IMAGE_VERSION} + container_name: gb32960-ingest-app + restart: unless-stopped + environment: + <<: *common-env + HTTP_PORT: 20100 + GB32960_PORT: 32960 + KAFKA_CONSUMER_ENABLED: "false" + KAFKA_NODE_ID: ${KAFKA_NODE_ID:-gb32960-ingest-portainer} + GB32960_AUTH_ENABLED: ${GB32960_AUTH_ENABLED:-false} + GB32960_PLATFORM_USER_HYUNDAI: ${GB32960_PLATFORM_USER_HYUNDAI:-Hyundai} + GB32960_PLATFORM_PWD_HYUNDAI: ${GB32960_PLATFORM_PWD_HYUNDAI:-} + GB32960_PLATFORM_IP_HYUNDAI: ${GB32960_PLATFORM_IP_HYUNDAI:-} + GB32960_TLS_ENABLED: ${GB32960_TLS_ENABLED:-false} + VEHICLE_IDENTITY_FILE: /data/vehicle-identity.jsonl + ports: + - "${GB32960_HTTP_PORT:-20100}:20100" + - "${GB32960_TCP_PORT:-32960}:32960" + volumes: + - gb32960-ingest-data:/data + networks: + - vehicle-ingest + + vehicle-history-app: + image: harbor.lnh2e.com/lingniu-v1/vehicle-history-app:${LINGNIU_IMAGE_VERSION:?set LINGNIU_IMAGE_VERSION} + container_name: vehicle-history-app + restart: unless-stopped + depends_on: + - gb32960-ingest-app + environment: + <<: *common-env + HTTP_PORT: 20200 + KAFKA_CONSUMER_CLIENT_ID_PREFIX: ${KAFKA_CONSUMER_CLIENT_ID_PREFIX_HISTORY:-vehicle-history} + KAFKA_GROUP_HISTORY: ${KAFKA_GROUP_HISTORY:-vehicle-history} + SINK_ARCHIVE_ENABLED: ${SINK_ARCHIVE_ENABLED:-true} + SINK_ARCHIVE_PATH: /archive/ + EVENT_FILE_STORE_ENABLED: ${EVENT_FILE_STORE_ENABLED:-true} + EVENT_FILE_STORE_PATH: /event-store/ + EVENT_FILE_STORE_ZONE_ID: ${EVENT_FILE_STORE_ZONE_ID:-Asia/Shanghai} + ports: + - "${VEHICLE_HISTORY_HTTP_PORT:-20200}:20200" + volumes: + - vehicle-history-archive:/archive + - vehicle-history-event-store:/event-store + networks: + - vehicle-ingest + + vehicle-analytics-app: + image: harbor.lnh2e.com/lingniu-v1/vehicle-analytics-app:${LINGNIU_IMAGE_VERSION:?set LINGNIU_IMAGE_VERSION} + container_name: vehicle-analytics-app + restart: unless-stopped + depends_on: + - gb32960-ingest-app + environment: + <<: *common-env + HTTP_PORT: 20300 + KAFKA_CONSUMER_CLIENT_ID_PREFIX: ${KAFKA_CONSUMER_CLIENT_ID_PREFIX_ANALYTICS:-vehicle-analytics} + KAFKA_GROUP_STATE: ${KAFKA_GROUP_STATE:-vehicle-state} + KAFKA_GROUP_STAT: ${KAFKA_GROUP_STAT:-vehicle-stat} + VEHICLE_STATE_ENABLED: ${VEHICLE_STATE_ENABLED:-false} + VEHICLE_STAT_ENABLED: ${VEHICLE_STAT_ENABLED:-true} + VEHICLE_STAT_FILE_PATH: /vehicle-stat/ + VEHICLE_STAT_ZONE_ID: ${VEHICLE_STAT_ZONE_ID:-Asia/Shanghai} + ports: + - "${VEHICLE_ANALYTICS_HTTP_PORT:-20300}:20300" + volumes: + - vehicle-analytics-stat:/vehicle-stat + networks: + - vehicle-ingest + +networks: + vehicle-ingest: + name: vehicle-ingest + +volumes: + gb32960-ingest-data: + vehicle-history-archive: + vehicle-history-event-store: + vehicle-analytics-stat: