Sign inSign up

usdotfhwastoldev/xil-carma-cloud-application:feature-publish_compose_file

Manifest digest

sha256:bca90376b2e14d8ddf12d1d400c3ca31cf49f993a90e6cf693d3308a446d916d

Last pushed

10 months by saikrishnabairamoni

Type

Compose

Manifest digest

sha256:bca90376b2e14d8ddf12d1d400c3ca31cf49f993a90e6cf693d3308a446d916d

Compose file content


services:
  carma-simulation:
    privileged: true
    image: ${DOCKER_ORG:-usdotfhwastoldev}/cdasim:${DOCKER_TAG:-develop}
    networks:
      carma_sim_net:
        ipv4_address: 172.2.0.2
    container_name: carma-simulation
    environment:
      - DISPLAY=${DISPLAY}
      - QT_X11_NO_MITSHM=1
    volumes:
      - /tmp/.X11-unix:/tmp/.X11-unix
      - /opt/carma-simulation/logs:/opt/carma-simulation/logs
      - ./carla-recorder/:/app/scenario_runner/metrics/data/
      - ./cdasim/logback.xml:/opt/carma-simulation/etc/logback.xml
    deploy:
      resources:
        reservations:
          devices:
            - capabilities: [gpu]
    command: bash -c "./mosaic.sh -s Town04"

############################################################################
# carma vehicle 1
  roscore_1:
    image: usdotfhwastol/carma-base:carma-system-4.5.0
    networks:
      carma_net_1:
        ipv4_address: 172.3.0.2
    container_name: roscore_1
    volumes_from:
      - container:carma-config:ro
    volumes:
      - /opt/carma/.ros:/home/carma/.ros
      - /opt/carma/logs/carma_1:/opt/carma/logs
    restart: always
    environment:
      - ROS_IP=172.3.0.2
      - ROS_MASTER_URI=http://172.3.0.2:11311/
    command: roscore

  platform_1:
    image: usdotfhwastol/carma-platform:carma-system-4.5.0
    networks:
      carma_net_1:
        ipv4_address: 172.3.0.3
    container_name: platform_1
    volumes_from:
      - container:carma-config:ro
    volumes:
      - /opt/carma/logs/carma_1:/opt/carma/logs
      - /opt/carma/.ros:/home/carma/.ros
      - /opt/carma/vehicle/calibration:/opt/carma/vehicle/calibration
      - /opt/carma/yolo:/opt/carma/yolo
      - /opt/carma/maps:/opt/carma/maps
      - /opt/carma/routes:/opt/carma/routes
      - /opt/carma/data:/opt/carma/data
      - /opt/carma/simulation:/opt/carma/simulation
    environment:
      ROS_IP: 172.3.0.3
      ROS_MASTER_URI: http://172.3.0.2:11311/
    command: >
      bash -c 'wait-for-it 172.3.0.2:11311 -- roslaunch /opt/carma/vehicle/config/carma_docker.launch'

  platform_ros2_1:
    image: usdotfhwastol/carma-platform:carma-system-4.5.0
    networks:
      carma_net_1:
        ipv4_address: 172.3.0.4
    container_name: platform_ros2_1
    environment:
      RMW_IMPLEMENTATION_OVERWRITE: ${RMW_IMPLEMENTATION}
    volumes_from:
      - container:carma-config:ro
    volumes:
      - /opt/carma/logs/carma_1:/opt/carma/logs
      - /opt/carma/.ros:/home/carma/.ros
      - /opt/carma/vehicle/calibration:/opt/carma/vehicle/calibration
      - /opt/carma/maps:/opt/carma/maps
      - /opt/carma/routes:/opt/carma/routes
      - /opt/carma/yolo:/opt/carma/yolo
      # ILC tuning for carma-cloud workzone (carma_2) is breaking k900 normal lanefolow regression testing, so using different tuning
      - ./carma/inlanecruising_config/parameters1.yaml:/opt/carma/install_ros2/inlanecruising_plugin/share/inlanecruising_plugin/config/parameters.yaml
      - ./carma/environment.launch.py:/opt/carma/install_ros2/carma/share/carma/launch/environment.launch.py
      - ./carma/light_controlled_intersection_tactical_plugin/parameters.yaml:/opt/carma/install_ros2/light_controlled_intersection_tactical_plugin/share/light_controlled_intersection_tactical_plugin/config/parameters.yaml
      - ./carma/lci_strategic_plugin/parameters.yaml:/opt/carma/install_ros2/lci_strategic_plugin/share/lci_strategic_plugin/config/parameters.yaml
      - ./carma/plugins.launch.py:/opt/carma/install_ros2/carma/share/carma/launch/plugins.launch.py
      - ./carma/system_controller/config.yaml:/opt/carma/install_ros2/system_controller/share/system_controller/config/config.yaml
    command: >
      bash -c 'export RMW_IMPLEMENTATION=${RMW_IMPLEMENTATION_OVERWRITE} && source /opt/carma/install_ros2/setup.bash
      && ros2 launch /opt/carma/vehicle/config/carma_docker.launch.py'

  ros1_bridge_1:
    image: usdotfhwastol/carma-msgs:carma-system-4.5.0
    networks:
      carma_net_1:
        ipv4_address: 172.3.0.5
    container_name: ros1_bridge_1
    volumes_from:
      - container:carma-config:ro
    environment:
      ROS_IP: 172.3.0.5
      ROS_MASTER_URI: http://172.3.0.2:11311/
      RMW_IMPLEMENTATION_OVERWRITE: ${RMW_IMPLEMENTATION}
    volumes:
      - /opt/carma/logs/carma_1:/opt/carma/logs
      - /opt/carma/.ros:/home/carma/.ros
      - /opt/carma/vehicle/calibration:/opt/carma/vehicle/calibration
      - /opt/carma/maps:/opt/carma/maps
      - /opt/carma/routes:/opt/carma/routes
      - /opt/carma/yolo:/opt/carma/yolo
    command: >
      bash -c 'export RMW_IMPLEMENTATION=${RMW_IMPLEMENTATION_OVERWRITE} && wait-for-it 172.3.0.2:11311 -- rosparam load /opt/carma/vehicle/config/bridge.yml
      && source ~/.base-image/workspace/install/setup.bash
      && ros2 run ros1_bridge dynamic_bridge --multi-threads'

  carma-carla-integration_1:
    image: usdotfhwastol/carma-carla-integration:carma-system-4.5.0
    networks:
      carma_net_1:
        ipv4_address: 172.3.0.6
      carma_sim_net:
        ipv4_address: 172.2.0.6
    container_name: carma-carla-integration_1
    volumes_from:
      - container:carma-config:ro
    environment:
      ROS_IP: 172.3.0.6
      ROS_MASTER_URI: http://172.3.0.2:11311/
      PYTHONUNBUFFERED: 1
    # sleep is for carla simulator to become available
    # start_delay_in_seconds is carla game time seconds to adjust when to engage for the scenario
    # and account for delay required for world model to fully update after route is selected
    command: >
      bash -c "wait-for-it 172.3.0.2:11311
      && export PYTHONPATH=$PYTHONPATH:~/PythonAPI/carla/dist/carla-0.9.10-py3.7-linux-x86_64.egg:/home/carma/carla-sensor-lib/src
      && source ~/carma_carla_ws/devel/setup.bash
      && python3 /home/carma/carma-carla-integration/carla-health-poll/src/wait_for_carla.py
      && roslaunch carma_carla_agent carma_carla_agent.launch
      role_name:='carma_1'
      host:='172.2.0.2'
      selected_route:='carma_1_route'
      start_delay_in_seconds:=${VEHICLE_ENGAGE_DELAY}
      spawn_point:='151.2,-305.9,0,0,0,0'"



  ns3_adapter_1:
    image: usdotfhwastol/carma-ns3-adapter:carma-system-4.5.0
    networks:
      carma_net_1:
        ipv4_address: 172.3.0.7
      carma_sim_net:
        ipv4_address: 172.2.0.7
    container_name: ns3_adapter_1
    volumes_from:
      - container:carma-config:ro
    environment:
      ROS_IP: 172.3.0.7
      ROS_MASTER_URI: http://172.3.0.2:11311/
      NVIDIA_VISIBLE_DEVICES: all
    volumes:
      - /opt/carma/logs/carma_1:/opt/carma/logs
      - /opt/carma/.ros:/home/carma/.ros
      - /opt/carma/vehicle/calibration:/opt/carma/vehicle/calibration
      - /opt/carma/maps:/opt/carma/maps
      - /opt/carma/routes:/opt/carma/routes
      - /opt/carma/yolo:/opt/carma/yolo
      - ./ns3_adapter/adapter_1/parameters.yaml:/opt/carma/install/ns3_adapter/share/ns3_adapter/config/parameters.yaml
    command: >
      bash -c "wait-for-it 172.3.0.2:11311 -- roslaunch ns3_adapter ns3_adapter.launch
      role_id:='carma_1'
      remap_ns:=/hardware_interface/comms"
#############################################################################

#############################################################################
# carma_2 vehicle
  roscore_2:
    image: usdotfhwastol/carma-base:carma-system-4.5.0
    networks:
      carma_net_2:
        ipv4_address: 172.5.0.2
    container_name: roscore_2
    volumes_from:
      - container:carma-config:ro
    volumes:
      - /opt/carma/.ros/:/home/carma/.ros
      - /opt/carma/logs/carma_2:/opt/carma/logs
    restart: always
    environment:
      ROS_IP: 172.5.0.2
      ROS_MASTER_URI: http://172.5.0.2:11311/
    command: roscore

  platform_2:
    image: usdotfhwastol/carma-platform:carma-system-4.5.0
    networks:
      carma_net_2:
        ipv4_address: 172.5.0.3
    container_name: platform_2
    volumes_from:
      - container:carma-config:ro
    volumes:
      - /opt/carma/logs/carma_2:/opt/carma/logs
      - /opt/carma/.ros:/home/carma/.ros
      - /opt/carma/vehicle/calibration:/opt/carma/vehicle/calibration
      - /opt/carma/yolo:/opt/carma/yolo
      - /opt/carma/maps:/opt/carma/maps
      - /opt/carma/routes:/opt/carma/routes
      - /opt/carma/data:/opt/carma/data
      - /opt/carma/simulation:/opt/carma/simulation
    environment:
      - ROS_IP=172.5.0.3
      - ROS_MASTER_URI=http://172.5.0.2:11311/
    command: bash -c 'wait-for-it 172.5.0.2:11311 -- roslaunch /opt/carma/vehicle/config/carma_docker.launch'

  platform_ros2_2:
    image: usdotfhwastol/carma-platform:carma-system-4.5.0
    networks:
      carma_net_2:
        ipv4_address: 172.5.0.4
    container_name: platform_ros2_2
    volumes_from:
      - container:carma-config:ro
    volumes:
      - /opt/carma/logs/carma_2:/opt/carma/logs
      - /opt/carma/.ros:/home/carma/.ros
      - /opt/carma/vehicle/calibration:/opt/carma/vehicle/calibration
      - /opt/carma/maps:/opt/carma/maps
      - /opt/carma/routes:/opt/carma/routes
      - /opt/carma/yolo:/opt/carma/yolo
      - ./carma/inlanecruising_config/parameters.yaml:/opt/carma/install_ros2/inlanecruising_plugin/share/inlanecruising_plugin/config/parameters.yaml
      - ./carma/environment.launch.py:/opt/carma/install_ros2/carma/share/carma/launch/environment.launch.py
      - ./carma/light_controlled_intersection_tactical_plugin/parameters.yaml:/opt/carma/install_ros2/light_controlled_intersection_tactical_plugin/share/light_controlled_intersection_tactical_plugin/config/parameters.yaml
      - ./carma/lci_strategic_plugin/parameters.yaml:/opt/carma/install_ros2/lci_strategic_plugin/share/lci_strategic_plugin/config/parameters.yaml
      - ./carma/system_controller/config.yaml:/opt/carma/install_ros2/system_controller/share/system_controller/config/config.yaml
      - ./carma/plugins.launch.py:/opt/carma/install_ros2/carma/share/carma/launch/plugins.launch.py
    environment:
      RMW_IMPLEMENTATION_OVERWRITE: ${RMW_IMPLEMENTATION}
    command: bash -c 'export RMW_IMPLEMENTATION=${RMW_IMPLEMENTATION_OVERWRITE} && source /opt/carma/install_ros2/setup.bash && ros2 launch /opt/carma/vehicle/config/carma_docker.launch.py'

  ros1_bridge_2:
    image: usdotfhwastol/carma-msgs:carma-system-4.5.0
    networks:
      carma_net_2:
        ipv4_address: 172.5.0.5
    container_name: ros1_bridge_2
    volumes_from:
      - container:carma-config:ro
    environment:
      ROS_IP: 172.5.0.5
      ROS_MASTER_URI: http://172.5.0.2:11311/
      RMW_IMPLEMENTATION_OVERWRITE: ${RMW_IMPLEMENTATION}
    volumes:
      - /opt/carma/logs/carma_2:/opt/carma/logs
      - /opt/carma/.ros:/home/carma/.ros
      - /opt/carma/vehicle/calibration:/opt/carma/vehicle/calibration
      - /opt/carma/maps:/opt/carma/maps
      - /opt/carma/routes:/opt/carma/routes3
      - /opt/carma/yolo:/opt/carma/yolo
    command: bash -c 'export RMW_IMPLEMENTATION=${RMW_IMPLEMENTATION_OVERWRITE} && wait-for-it 172.5.0.2:11311 -- rosparam load /opt/carma/vehicle/config/bridge.yml && source ~/.base-image/workspace/install/setup.bash && ros2 run ros1_bridge dynamic_bridge --multi-threads'

  carma-carla-integration_2:
    image: usdotfhwastol/carma-carla-integration:carma-system-4.5.0
    networks:
      carma_net_2:
        ipv4_address: 172.5.0.6
      carma_sim_net:
        ipv4_address: 172.2.0.10
    container_name: carma-carla-integration_2
    volumes_from:
      - container:carma-config:ro
    environment:
      ROS_IP: 172.5.0.6
      ROS_MASTER_URI: http://172.5.0.2:11311/
      PYTHONUNBUFFERED: 1
    command: >
              bash -c "wait-for-it 172.5.0.2:11311
              && export PYTHONPATH=$PYTHONPATH:~/PythonAPI/carla/dist/carla-0.9.10-py3.7-linux-x86_64.egg:/home/carma/carla-sensor-lib/src
              && source ~/carma_carla_ws/devel/setup.bash
              && python3 /home/carma/carma-carla-integration/carla-health-poll/src/wait_for_carla.py
              && roslaunch carma_carla_agent carma_carla_agent.launch
              role_name:='carma_2'
              host:='172.2.0.2'
              selected_route:='carma_2_route'
              start_delay_in_seconds:=${VEHICLE_ENGAGE_DELAY}
              spawn_point:='148.12,-170,0,0,0,0'"

  ns3_adapter_2:
    image: usdotfhwastol/carma-ns3-adapter:carma-system-4.5.0
    networks:
      carma_net_2:
        ipv4_address: 172.5.0.7
      carma_sim_net:
        ipv4_address: 172.2.0.11
    container_name: ns3_adapter_2
    volumes_from:
      - container:carma-config:ro
    environment:
      ROS_IP: 172.5.0.7
      ROS_MASTER_URI: http://172.5.0.2:11311/
      NVIDIA_VISIBLE_DEVICES: all
    volumes:
      - /opt/carma/logs/carma_2:/opt/carma/logs
      - /opt/carma/.ros:/home/carma/.ros
      - /opt/carma/vehicle/calibration:/opt/carma/vehicle/calibration
      - /opt/carma/maps:/opt/carma/maps
      - /opt/carma/routes:/opt/carma/routes
      - /opt/carma/yolo:/opt/carma/yolo
      - ./ns3_adapter/adapter_2/parameters.yaml:/opt/carma/install/ns3_adapter/share/ns3_adapter/config/parameters.yaml
    command: bash -c "wait-for-it 172.5.0.2:11311 -- roslaunch ns3_adapter ns3_adapter.launch role_id:='carma_2' remap_ns:=/hardware_interface/comms"
#############################################################################

  carma-cloud:
    image: ${DOCKER_ORG:-usdotfhwastoldev}/carma-cloud:${DOCKER_TAG:-develop}
    networks:
      carma_cloud_1:
        ipv4_address: 172.6.0.47
      carma_sim_net:
        ipv4_address: 172.2.0.47
    container_name: carma-cloud
    depends_on:
      - carma-simulation
    volumes:
      - ./carmacloudvol/logs:/opt/tomcat/logs
      - ./carmacloudvol/work:/opt/tomcat/work
      - ./carmacloudvol/web.xml:/opt/tomcat/webapps/carmacloud/ROOT/WEB-INF/web.xml
      - ./carmacloudvol/log4j2.properties:/opt/tomcat/webapps/carmacloud/WEB-INF/classes/log4j2.properties
    command: bash -c "/opt/tomcat/bin/catalina.sh run"

  zookeeper:
    image: wurstmeister/zookeeper
    container_name: zookeeper
    networks:
      carma_streets_net_1:
        ipv4_address: 172.4.0.3
    volumes:
      - zookeeper-datavolume:/opt/zookeeper-3.4.13/data

  kafka:
    image: wurstmeister/kafka
    container_name: kafka
    depends_on:
      - zookeeper
    network_mode: service:zookeeper
    # Health check to confirm kafka server is healthy (script is a client) and all topics
    # have been created (time_sync is last topic).
    healthcheck:
      test: ["CMD", "kafka-topics.sh", "--describe", "--bootstrap-server", "172.4.0.3:9092", "--topic", "time_sync"]
      interval: 2s
      timeout: 10s
      retries: 10
    environment:
      DOCKER_HOST_IP: 172.4.0.3
      KAFKA_ADVERTISED_HOST_NAME: 172.4.0.3
      KAFKA_ADVERTISED_PORT: 9092
      KAFKA_CREATE_TOPICS: "\
        v2xhub_scheduling_plan_sub:1:1,\
        v2xhub_bsm_in:1:1,\
        v2xhub_mobility_operation_in:1:1,\
        v2xhub_mobility_path_in:1:1,\
        vehicle_status_intent_output:1:1,\
        v2xhub_map_msg_in:1:1,\
        modified_spat:1:1,\
        desired_phase_plan:1:1,\
        tsc_config_state:1:1,\
        v2xhub_sim_sensor_detected_object:1:1,\
        v2xhub_sdsm_sub,\
        time_sync:1:1"
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_LOG_DIRS: "/kafka/kafka-logs"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - kafka-datavolume:/kafka/kafka-logs

  ##############################################################
  # Kafka Owl for monitoring kafka traffic. UI can be accessed on
  # configurable port set in performance/kowl.yaml NOTE: IS NOT
  # NECESSARY FOR DEPLOYMENT BUT HELFUL FOR DEBUGGING!
  ################################################################
  kowl:
    image: quay.io/cloudhut/kowl
    container_name: kowl
    restart: on-failure
    network_mode: service:zookeeper
    depends_on:
      kafka:
        condition: service_healthy
    environment:
      CONFIG_FILEPATH: /etc/kowl/kowl.yaml
    volumes:
      - ./kowl:/etc/kowl/

  db:
    image: mysql:8.0
    container_name: mysql
    restart: always
    environment:
      - MYSQL_DATABASE=IVP
      - MYSQL_USER=IVP
      - MYSQL_PASSWORD_FILE=/secrets/mysql_password.txt
      - MYSQL_ROOT_PASSWORD_FILE=/secrets/mysql_root_password.txt
    networks:
      carma_streets_net_1:
        ipv4_address: 172.4.0.2
      carma_sim_net:
        ipv4_address: 172.2.0.8
    volumes:
      - mysql-datavolume:/var/lib/mysql
      - ./secrets:/secrets
      - ./mysql:/docker-entrypoint-initdb.d

  php:
    image: ${OPS_DOCKER_ORG:-usdotfhwaops}/php:${OPS_DOCKER_TAG:-develop}
    container_name: php
    network_mode: service:db
    depends_on:
      - v2xhub
    stdin_open: true
    tty: true

  v2xhub:
    image: ${OPS_DOCKER_ORG:-usdotfhwaops}/v2xhub:${OPS_DOCKER_TAG:-develop}
    container_name: v2xhub
    network_mode: service:db
    restart: always
    depends_on:
      - db
    environment:
      MYSQL_PASSWORD: /home/V2X-Hub/secrets/mysql_password.txt
      SIMULATION_MODE: ${SIMULATION_MODE}
      SIMULATION_IP: 172.2.0.2
      SIMULATION_REGISTRATION_PORT: 1615
      LOCAL_IP: 172.2.0.8
      TIME_SYNC_TOPIC: time_sync
      TIME_SYNC_PORT: 7575
      SIM_V2X_PORT: 1517
      SIM_INTERACTION_PORT: 7576
      V2X_PORT: 8686
      SENSOR_JSON_FILE_PATH: /home/V2X-Hub/sensor_configurations/sensors.json
      INFRASTRUCTURE_ID: ${INFRASTRUCTURE_ID}
    volumes:
      - ./logs:/var/log/tmx
      - ./MAP:/var/www/plugins/MAP
      - ./secrets:/home/V2X-Hub/secrets
      - ./sensor_configurations:/home/V2X-Hub/sensor_configurations/

  intersection_model:
    image: usdotfhwastol/intersection_model:carma-system-4.5.0
    container_name: intersection_model
    restart: always
    network_mode: service:zookeeper
    depends_on:
      kafka:
        condition: service_healthy
    environment:
      DOCKER_HOST_IP: 172.4.0.3
    volumes:
      - ./intersection_model/manifest.json:/home/carma-streets/intersection_model/manifest.json
      - ./intersection_model/logs:/home/carma-streets/intersection_model/logs
      - ./MAP:/home/carma-streets/intersection_model/MAP

  carla-sensor-lib:
    image: usdotfhwastol/carla-sensor-lib:carma-system-4.5.0
    networks:
      carma_sim_net:
        ipv4_address: 172.2.0.5
    container_name: carla-sensor-lib
    restart: always
    environment:
      - LOAD_CARLA_EGG=True
      - CARLA_VERSION=0.9.10
      - CARLA_EGG_DIR=/home/CarlaCDASimAdapter/
    volumes:
      - ./carla-sensor-lib/logs/:/home/CarlaCDASimAdapter/logs/
    command: bash -c "sleep 15;
      python3 -u /home/CarlaCDASimAdapter/src/CarlaCDASimAdapter.py --carla-host 172.2.0.2 --xmlrpc-server-host 172.2.0.5  --sensor-config-file ./config/simulated_sensor_config.yaml --noise-model-config-file ./config/noise_model_config.yaml"

  tsc_service:
    image: usdotfhwastol/tsc_service:carma-system-4.5.1
    container_name: tsc_service
    restart: always
    network_mode: service:zookeeper
    depends_on:
      kafka:
        condition: service_healthy
      # Every dependency describe with this notation needs a condition
      # Condition service_started is the default for - notation
      # TODO: Replace docker-compose-wait with intersection_model health check
      intersection_model:
        condition: service_started
    environment:
      DOCKER_HOST_IP: 172.4.0.3
      WAIT_HOSTS: 127.0.0.1:8080
      WAIT_HOSTS_TIMEOUT: 300
      WAIT_SLEEP_INTERVAL: 10
      WAIT_HOST_CONNECT_TIMEOUT: 30
      SIMULATION_MODE: ${SIMULATION_MODE}
      TIME_SYNC_TOPIC: time_sync
      CONFIG_FILE_PATH: /home/carma-streets/tsc_client_service/manifest.json
      LOGS_DIRECTORY: /home/carma-streets/tsc_client_service/logs/
    volumes:
      - ./tsc_client_service/manifest.json:/home/carma-streets/tsc_client_service/manifest.json
      - ./tsc_client_service/logs/:/home/carma-streets/tsc_client_service/logs/
    command: >
      sh -c "/wait
      && /home/carma-streets/tsc_client_service/build/traffic_signal_controller_service"

  sensor_data_sharing_service:
    image: usdotfhwastol/sensor_data_sharing_service:carma-system-4.5.0
    build:
      context: .
      dockerfile: sensor_data_sharing_service/Dockerfile
    container_name: sensor_data_sharing_service
    restart: always
    network_mode: service:zookeeper
    depends_on:
      kafka:
        condition: service_healthy
    environment:
      SIMULATION_MODE: ${SIMULATION_MODE}
      CONFIG_FILE_PATH: /home/carma-streets/sensor_data_sharing_service/manifest.json
      TIME_SYNC_TOPIC: ${TIME_SYNC_TOPIC}
      LOGS_DIRECTORY: /home/carma-streets/sensor_data_sharing_service/logs/
      LANELET2_MAP: /home/carma-streets/MAP/Town04_vector_map.osm
      INFRASTRUCTURE_ID: ${INFRASTRUCTURE_ID}
      SENSOR_JSON_FILE_PATH: /home/carma-streets/sensor_configurations/sensors.json
    volumes:
      - ./sensor_data_sharing_service/manifest.json:/home/carma-streets/sensor_data_sharing_service/manifest.json
      - ./sensor_data_sharing_service/logs/:/home/carma-streets/sensor_data_sharing_service/logs/
      - ./MAP/:/home/carma-streets/MAP/
      - ./sensor_configurations/:/home/carma-streets/sensor_configurations/
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro

  econolite-virtual-controller:
    image: usdotfhwastol/econolite-virtual-controller:latest
    container_name: evc
    restart: always
    networks:
      carma_sim_net:
        ipv4_address: 172.2.0.4
      carma_streets_net_1:
        ipv4_address: 172.4.0.4
    environment:
      - DISPLAY=${DISPLAY}
    volumes:
      - /tmp/.X11-unix:/tmp/.X11-unix
      - ./evc_sumo/:/home/carma/src/resources/
    depends_on:
      - carma-simulation
    command: >
      bash -c "sleep 10
      && x-terminal-emulator -e python3.8 evc_sumo_bridge.py
      --asc3app-path '../evcfile/asc3app-application.zip'
      --traci-ip 172.2.0.2"

  scenario-runner:
    image: usdotfhwastol/scenario-runner:carma-system-4.5.0
    container_name: scenario-runner
    networks:
      - carma_sim_net
    depends_on:
      - carma-simulation
    volumes:
      - ./scenario-runner/vru_collision.py:/app/scenario_runner/srunner/scenarios/vru_collision.py
      - ./scenario-runner/vru_collision.xml:/app/scenario_runner/srunner/examples/vru_collision.xml
      - ./carla-recorder/:/app/scenario_runner/metrics/data/
    # sleep is for mainly carma-platform's components to
    # activate and be ready before scenario starts
    entrypoint: >
      bash -c "sleep 30
      && python3 scenario_runner.py
      --scenario VulnerableRoadUserCollision_LeftTurn
      --record metrics/data/
      --host 172.2.0.2"

networks:
  carma_sim_net:
    ipam:
      config:
        - subnet: 172.2.0.0/16

  carma_net_1:
    ipam:
      config:
        - subnet: 172.3.0.0/16

  carma_net_2:
    ipam:
      config:
        - subnet: 172.5.0.0/16

  carma_cloud_1:
    ipam:
      config:
        - subnet: 172.6.0.0/16

  carma_streets_net_1:
    ipam:
      config:
        - subnet: 172.4.0.0/16

volumes:
  mysql-datavolume:
  kafka-datavolume:
  zookeeper-datavolume:

Docker commands

docker compose -f oci://usdotfhwastoldev/xil-carma-cloud-application:feature-publish_compose_file up

Use the above command to pull and run the Compose file. Learn more.

Images used

Image + 1 more

MySQL is a widely used, open-source relational database management system (RDBMS).


Pulls

1B+

Stars

16189

Last Updated

9 days

Image

Multi-Broker Apache Kafka Image


Pulls

100M+

Stars

1586

Last Updated

over 4 years

Image


Pulls

10M+

Stars

185

Last Updated

over 7 years

Image

CARMA Base Install


Pulls

6.8K

Stars

1

Last Updated

2 months

Image

Primary application image for the CARMA Platform system


Pulls

4.9K

Stars

0

Last Updated

19 days

Image

Integration nodes for interfacing CARMA Platform with CARLA simulation environment


Pulls

2.1K

Stars

0

Last Updated

2 months

Image


Pulls

2.0K

Stars

0

Last Updated

about 1 year

Image


Pulls

1.8K

Stars

0

Last Updated

about 1 year

Image


Pulls

1.3K

Stars

0

Last Updated

2 months

Image


Pulls

1.1K

Stars

0

Last Updated

about 1 year

Image


Pulls

404

Stars

0

Last Updated

about 1 year

Image


Pulls

385

Stars

0

Last Updated

2 months

Image


Pulls

207

Stars

0

Last Updated

over 2 years