-
Notifications
You must be signed in to change notification settings - Fork 7
/
docker-compose.yml
116 lines (111 loc) · 3.65 KB
/
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# Copyright © 2021, United States Government, as represented by the Administrator of the
# National Aeronautics and Space Administration. All rights reserved.
#
# The “ISAAC - Integrated System for Autonomous and Adaptive Caretaking platform” software is
# licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
#
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed under the
# License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
# either express or implied. See the License for the specific language governing
# permissions and limitations under the License.
#
# ----------------------------------------------------------------------------------------------------
# NASA ISAAC User Interface
# No ROS Master launched, already provided by user
# ----------------------------------------------------------------------------------------------------
#
version: '2.2'
services:
iui_frontend:
# This service serves the static content that represents
# the frontend ISAAC data interface.
#
image: iui_frontend
build: './frontend'
hostname: iui_frontend
container_name: iui_frontend
ports:
- '8080:8080'
networks:
- iui
iui_backend:
# This service serves the front-end by providing it with
# historical telemetry that it retrieves from ROS bridge.
#
image: iui_backend
build: './backend'
hostname: iui_backend
container_name: iui_backend
command: python /main.py
volumes:
- './config.json:/config.json:ro'
depends_on:
- iui_rosbridge
- iui_arangodb
expose:
- 9091
links:
- iui_arangodb
networks:
- iui
iui_arangodb:
# This service provides a NoSQL database for the ISAAC UI. The
# backend uses this database to store ROS messages in JSON format.
#
image: arangodb:latest
hostname: iui_arangodb
container_name: iui_arangodb
environment:
ARANGO_ROOT_PASSWORD: isaac
expose:
- 8529
volumes:
- arangodb_data_container:/data/arangodb3
- arangodb_apps_data_container:/data/arangodb3-apps
networks:
- iui
iui_rosbridge:
# This service will provide a bridge between ROS nodes and the
# frontend subsystem through a WebSocket open on port 9090.
#
# The backend subsystem uses this service to retrieve
# JSON-formatted ROS messages and store these messages
# in the JSON-based database subsystem.
#
# For more info, see:
# http://wiki.ros.org/rosbridge_suite
# http://wiki.ros.org/web_video_server
#
image: iui_rosbridge
build: './rosbridge'
hostname: rosbridge
container_name: iui_rosbridge
entrypoint: '/ros_entrypoint.sh'
command: 'roslaunch --wait /rosbridge/publishers.launch'
expose:
- 9090
- 8080
environment:
- "ROS_MASTER_URI=http://rosmaster:11311"
networks:
- iui
# ----------------------------------------------------------------------------------------------------
# Docker Compose Volumes
# ----------------------------------------------------------------------------------------------------
volumes:
iui_database_volume:
arangodb_data_container:
arangodb_apps_data_container:
# ----------------------------------------------------------------------------------------------------
# Docker Compose Networks
# ----------------------------------------------------------------------------------------------------
networks:
iui:
name: iui
ipam:
driver: default