VS Code
In general, follow instructions from https://code.visualstudio.com/docs/devcontainers/containers. The following steps are specific developing a Savant module starting from the module template that already contains the devcontainer configuration.
IDE Preparation
Install the Remote Development extension pack.
(Optional) Connect to a remote host
In case you want to develop on a remote host, you can connect to it using SSH. Follow the instructions from https://code.visualstudio.com/docs/remote/ssh to setup SSH host and connect to it. It is recommended to setup SSH keys to avoid entering password every time you connect to the host.
Project Preparation
Clone the Savant repo:
git clone https://github.com/insight-platform/Savant.git
Copy and rename the template (let’s name the new project
my-module
):cp -r Savant/samples/template my-module
Run the IDE and open the
my-module
folder.Update the
devcontainer.json
file according to the folder name and your platform (.devcontainer/l4t/devcontainer.json
for Jetson,.devcontainer/x86/devcontainer.json
for x86):Update
--network
value inrunArgs
"runArgs": [ "--gpus=all", "--network=my-module_network" ],
Update zmq sockets volume source in
mounts
{ "source": "my-module_zmq_sockets", "target": "/tmp/zmq-sockets", "type": "volume" },
Deploy Jaeger service
Sample module and client are configured to send traces to Jaeger service by default. Run the following command to deploy Jaeger service:
docker compose -f docker-compose.x86.yml up jaeger -d
Docker Compose takes care of creating the network and volume required for communication.
Reopen in Container
The following steps apply to both local and remote development (screenshots are made for remote development).
Open the Command Palette with F1 or Ctrl+Shift+P.
Type
reopen
and select Dev Containers: Reopen in Container:Select a devcontainer.json file according to your platform (
.devcontainer/l4t/devcontainer.json
for Jetson,.devcontainer/x86/devcontainer.json
for x86):Wait until the container is built and the project is opened. The remote host in the Status Bar should indicate that you are working in the container:
Launch the module by opening the
run.py
script and choosing Terminal > Run Active File or by clicking theRun and Debug
icon in the Activity Bar. At the end you will see pipeline’s output with metadata:Open the
client/run.py
script and run it by selectingRun Python File in Dedicated Terminal
. You will see the client’s output:Check the results:
That’s it, the environment is set up. Now you are ready to develop your own pipeline. See the next section to find out how.
Update Runtime On Container Change
If any changes to the base image, module Dockerfile or requirements.txt are made, the container must be rebuilt.
Open the Command Palette with F1 or Ctrl+Shift+P.
Type
rebuild
and select Dev Containers: Rebuild Container:Wait until the container is rebuilt and the project is reopened.
In the following sections, you will find additional details on module development.