HumansXDocumentation Center 日本語Website ↗
Knowledge Base › Software › Wuji SDK

Docker Deployment

Getting Started

Run Wuji SDK applications in Linux Docker containers to keep the application and SDK dependencies in a separate environment. A container can connect to devices through the host network and share the host’s SDK user data. Configure network access and data mounts for your application to use device connection, data subscription, device-supported control, parameters, and recording. See the Wuji SDK Reading Guide for API usage.

Prepare the Environment

Install Docker Engine on the Linux host, then run docker version to check that both the client and server are available. The image uses Ubuntu 22.04 and Python 3.10. The default container user is wuji, with UID and GID both set to 1000.

Connect and power the device as described in the Wuji Hand 2 hardware walkthrough or Wuji Glove setup. Confirm the host can discover it using Device Discovery and Connection. Put the host network adapter on the same subnet as the device IP and allow UDP broadcasts and SDK traffic.

Build and Update

Clone the public Wuji SDK repository and build the image with its Dockerfile:

git clone https://github.com/wuji-technology/wuji-sdk.git
cd wuji-sdk/docker
docker build --pull --no-cache -t wuji-sdk:local .

The image installs the latest stable SDK from PyPI at build time. Existing images keep their installed SDK version. Starting a container doesn’t update the SDK. After building, check the version and record the image ID:

docker image inspect wuji-sdk:local --format '{{.Id}}'
docker run --rm wuji-sdk:local python -m pip show wuji-sdk

Before updating an existing image, run docker image tag wuji-sdk:local wuji-sdk:rollback to keep a rollback tag, then rebuild with --pull --no-cache.

Run the Application

Follow the public repository’s Docker README to start the container, mount the repository’s Python examples, and run a read-only subscription example. The README provides run commands and permission setup for Ethernet and USB devices.

--network host preserves the broadcasts needed to discover Ethernet devices. Mount the host’s ~/.wuji at /home/wuji/.wuji in the container to retain user profiles, calibration data, and logs. This directory and its existing files must allow the container user (UID/GID 1000) to read and write.

Use SDK Capabilities

Applications in the container can use the SDK installed in the image. Provide the resources needed for the APIs your application uses:

SDK CapabilityContainer ResourceReference
Device connection, data subscription, and supported controlHost network access to the device. Stop other applications using the target device before taking controlDevice Discovery and Connection, Data Subscription
Parameter access, SDK users, and calibration dataRead and write access to the host’s ~/.wuji directoryDevice Parameters and User Data
Data recording and offline processingMount a writable host directory in the container and have the recording application write files thereData Recording and Offline Processing

Recover and Diagnose

If an update causes connection problems, replace wuji-sdk:local in the run command with wuji-sdk:rollback. Keep the same data-directory mount, then check SDK import, device discovery, and read-only data.

For technical support, provide the image ID, SDK/Python versions, host architecture, Docker version, device firmware, and failing steps. On Jetson, include the model and JetPack/L4T version.