2024-01-23 15:06:29 -04:00
|
|
|
version: "3.3"
|
|
|
|
|
|
|
|
#Due to a bug in moby's libnetwork DNS resolver single domains like `gazebo`
|
|
|
|
# don't get resolved properly, even when we have ndots set to 0 like we're
|
|
|
|
# supposed to. So we need to reference `gazebo.compose-name_network-name`.
|
|
|
|
# We explicitly set the name variable so that changing folders doesn't break
|
2024-01-23 15:47:46 -04:00
|
|
|
# the install. This only applies when using docker-in-docker
|
2024-01-23 15:06:29 -04:00
|
|
|
name: "spiri-sdk"
|
|
|
|
|
|
|
|
volumes:
|
|
|
|
user-home:
|
|
|
|
dockeradmin:
|
|
|
|
docker-cache:
|
|
|
|
|
|
|
|
services:
|
|
|
|
|
|
|
|
drone-stack:
|
|
|
|
#The drone runs docker, so ultimately our drone stack is just a docker-in-docker container.
|
|
|
|
## This can make it difficult to deal with GPU acceleration, but remember that ROS *is*
|
|
|
|
## distributed. You don't need to run your GPU-accelerated rosnode on the drone-stack,
|
|
|
|
## just make sure you can contact the ROS_MASTER.
|
|
|
|
runtime: sysbox-runc
|
|
|
|
image: docker:24-dind
|
|
|
|
command: dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375 --tls=false
|
|
|
|
healthcheck:
|
|
|
|
test: docker info
|
|
|
|
start_interval: 1s
|
|
|
|
ports:
|
|
|
|
- "127.0.0.1:5760:5760" #Ground control
|
|
|
|
- "127.0.0.1:4560:4560" # Simulation
|
|
|
|
- "127.0.0.1:14560:14560" # Simulation
|
|
|
|
- "127.0.0.1:11311:11311" #Ros master
|
|
|
|
|
|
|
|
volumes:
|
|
|
|
- docker-cache:/var/lib/docker/
|
|
|
|
|
|
|
|
#Madness, setting a low ulimit here fixes memory leaks
|
|
|
|
# https://answers.ros.org/question/336963/rosout-high-memory-usage/
|
|
|
|
ulimits:
|
|
|
|
nofile:
|
|
|
|
soft: 1024
|
|
|
|
hard: 524288
|
|
|
|
|
|
|
|
gazebo:
|
|
|
|
image: git.spirirobotics.com/spiri/gazebo-classic:main
|
|
|
|
# command: gzserver --verbose /usr/share/gazebo-11/worlds/empty.world
|
|
|
|
command: gzserver --verbose /usr/share/gazebo-11/worlds/citadel_hill_world.world
|
|
|
|
ports:
|
|
|
|
- "127.0.0.1:11345:11345" #Ros master
|
|
|
|
|
|
|
|
desktop:
|
|
|
|
image: git.spirirobotics.com/spiri/spiri-sdk-desktop:master
|
|
|
|
runtime: sysbox-runc
|
|
|
|
tty: true
|
|
|
|
environment:
|
|
|
|
DOCKER_HOST: tcp://drone-stack:2375
|
|
|
|
ROS_MASTER_URI: http://drone-stack:11311
|
|
|
|
GAZEBO_MASTER_URI: http://gazebo.spiri-sdk_default:11345
|
|
|
|
|
|
|
|
ports:
|
|
|
|
- "127.0.0.1:8466:8466"
|
|
|
|
volumes:
|
|
|
|
- ./spiri-sdk-home:/home/spiri
|
|
|
|
depends_on:
|
|
|
|
drone-stack:
|
|
|
|
condition: service_healthy
|
|
|
|
|