aboutsummaryrefslogtreecommitdiff
path: root/Tools/ros/vagrant/px4-ros/Vagrantfile
blob: ffe3a00ea01c02b494fd5945734507cb4bbc12ba (plain) (blame)
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
# -*- mode: ruby -*-
# vi: set ft=ruby :

#
# Boot docker SITL environment
#
# "vagrant up" will build the images. Should start "xterm" in the end.
#
# Notes:
# (will change, need proper docs)
#
# Build with multiple dependent docker containers:
# Use the "--no-parallel" option so the containers will be built in order.
# e.g.: "vagrant up --no-parallel"
#
# Running apps directly:
# "vagrant docker-run ros -- <cmd>"
# Attention: will loose all data when stopped, vagrant runs this with "--rm"
#
# TODO
# - do not run the docker container with "--rm" (vagrant default). is that even possible?
# - maybe map a local working directory to compile stuff without loosing it in side the docker container
#

Vagrant.configure(2) do |config|
  # Configure docker host
  config.vm.provider "docker" do |d|
    d.vagrant_machine = "docker-host"
    d.vagrant_vagrantfile = "../docker-host/Vagrantfile"
  end

  # Configure docker apps to run
  config.vm.define "ros" do |app|
    app.vm.provider "docker" do |d|
      d.name = "ros"
      #d.image = "px4ros/ros-base:no-drcsim"
      d.build_dir = "../../docker/px4-ros"
      d.build_args = ["-t=px4ros/ros-base:no-drcsim"]

      # Share docker host x11 socket
      # Run privileged to support 3d acceleration
      d.volumes = [
        "/tmp/.X11-unix:/tmp/.X11-unix:ro"
      ]
      d.create_args = ["--privileged"]

      # TODO: get display number from host system
      d.env = {
        "DISPLAY" => ":0"
      }

      d.remains_running = true
      d.cmd = ["xterm"]
      #d.has_ssh = true
    end
  end

end