Alex Davies
4652368c8d
allow us to update user home files as time goes on, but won't overwrite files the user has modified. |
||
---|---|---|
.github/workflows | ||
skel | ||
.gitignore | ||
Dockerfile | ||
README.md | ||
background.png | ||
docker-compose.yaml | ||
kasmvnc.service | ||
kasmvnc.yaml | ||
nix.conf | ||
userhome.service | ||
xstartup |
README.md
Make sure sysbox and docker are installed and run
docker run -p 127.0.0.1:8466:8466 \
--volume ./spiri-sdk-home:/home/spiri:rw \
--runtime=sysbox-runc -it \
git.spirirobotics.com/spiri/spiri-sdk-desktop:master
Navigate to http://localhost:8466, and log in using the username spiri
and the password spiri-friend
For a complete example try this:
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
# the install.
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