Docker container deployment
container
, arguments
and ports to expose
should be enough. If you have questions, contact your solutions engineer (Enterprise plan) or drop a question on the forum (Developer plan).
To test this out locally on macOS or Linux, copy the text under “in a one-liner locally”, open a terminal, and paste the command in:
HTTP Inference server ran from a Docker container
GET
http://localhost:1337/api/info - returns a JSON object with information about the model, and the inputs / outputs it expects.POST
http://localhost:1337/api/features - run inference on raw sensor data. Expects a request with a JSON body containing a features
array. You can find raw features on Live classification. Example call:POST
http://localhost:1337/api/image - run inference on an image. Only available for impulses that use an image as input block. Expects a multipart/form-data request with a file
object that contains a JPG or PNG image. Images that are not in a size matching your impulse are resized using resize mode contain. Example call:anomaly
and classification
are optional, depending on the blocks included in your impulse.
--run-http-server
argument.
For example, on an Nvidia Jetson Orin with a USB webcam:
/root/.ei-linux-runner
. For example:
my-model.eim
in your current working directory):
Note that theThen, when you run the container next, mount the eim file back in (you can omit the API key now, it’s no longer needed):.eim
file is hardware specific; so if you run the download command on an Arm machine (like your Macbook M1) you cannot run the eim file on an x86 gateway. To build for another architecture, run with--list-targets
and follow the instructions.
--list-targets
when you run the container. It’ll return something like:
--force-target <target>
.
Note that you also need to forward the NPU or GPU to the Docker container to make this work - and this is not always supported. F.e. for GPUs (like on an NVIDIA Jetson Nano development board):