Building or configure image used¶
Users of the Enterprise Edition build their own image based on their custom release of MARV Robotics EE. Users of the Community Edition can use the published MARV Robotics CE Image
ternaris/marv-robotics or build their own.
Enterprise Edition and custom image¶
Building your own image is as simple as running
$ ./scripts/build-image ... Successfully tagged marvee-marvhub:latest
The basename of your checkout of MARV Robotics will be used as image name and subsequently also as container name. That way it is possible to have multiple containers based on different images running side-by-side.
Community Edition: Official MARV Robotics CE Image¶
In order to use the official MARV Robotics Community Edition image instead, the scripts contained in the repository have to be instructed accordingly.
$ cd marv-robotics $ echo ternaris/marv-robotics > .image-name
Run container provides instructions for the basic use case.
$ ./scripts/run-container Usage: run-container SITE SCANROOT [EXTRA_OPTS ...] The site is expected to contain marv.conf and gunicorn_cfg.py. It is mounted inside the container at /home/marv/site. The scanroot contains the log files for one or more collections. It is mounted read-only into the container at /scanroot. All additional arguments are passed as options to docker run.
Without further arguments it will run the container in the foreground, which is good for development where you want to kill and recreate it occasionally.
$ ./scripts/run-container sites/example path/to/scanroot
--detach to start the container in the background.
$ ./scripts/run-container sites/example path/to/scanroot --detach
Either way, you can enter the running container.
$ ./scripts/enter-container marv@ce:~$ marv --help
The scanroot is mounted read-only as
/scanroot inside the container. Be aware of that when creating your own configuration.
Adding your own code¶
To add your own code, create a python package in
./code next to the marv packages. When building an image, all of the code is copied into the image and installed automatically. Especially during development, you don’t want to rebuild all the time.
MARV_INIT=1 DEVELOP=1 ./scripts/run-container sites/example path/to/scanroot
In general changes you make to your code will be effective immediately. However, after adding the package, when making changes to its
setup.py, and when making changes affecting the web serving part of marv, the container needs to be restarted. As a rule of thumb: when you make changes to the config file, you want to restart using
MARV_INIT=1, while making changes to your node code does not need a restart.
While the container is running MARV Robotics should be available at: http://localhost:8000.
And it’s documentation is linked in the footer and served at: http://localhost:8000/docs/
Let’s switch to your locally served documentation.