# Deploy Qualcomm IM SDK as a container
Source: [https://docs.qualcomm.com/doc/80-70018-50/topic/application-deployment-within-container-api-gstd.html](https://docs.qualcomm.com/doc/80-70018-50/topic/application-deployment-within-container-api-gstd.html)
Build Qualcomm IM SDK within the docker container and prepare the final device docker
image, which can be deployed to the Qualcomm Linux enabled Edge device. This allows you to
use the AI workflow microservices to build various types of AI pipelines using Qualcomm IM
SDK.
Figure : Qualcomm IM SDK within a container - architecture

The table lists the components that are required to build the Qualcomm IM SDK docker
container from the source code:
Table : Components for Qualcomm IM SDK docker container
| Component | Description |
| :--- | :--- |
| Platform eSDK |
- Provides the platform dependencies for Qualcomm IM SDK.
- Contains platform libraries and header files.
|
| Qualcomm IM SDK source code | Contains the source code of the plugins and recipe files, which
build and define the compile time dependencies. |
| solutions-microservices | Provides the AI pipelines that are required for
microservices. |
| sdk-tools |
- Provides the docker files and a set of helper scripts to
generate the Qualcomm IM SDK device docker container.
- Provides the run commands for the reference docker,
and the YAML compose files to run the docker
containers.
- Maps all the required platform devices and libraries to
provide hardware acceleration inside the docker
container.
|
## Build Qualcomm IM SDK docker image
Source: [https://docs.qualcomm.com/doc/80-70018-50/topic/application-deployment-within-container-api-gstd.html](https://docs.qualcomm.com/doc/80-70018-50/topic/application-deployment-within-container-api-gstd.html)
### Procedure
1. Create a root workspace:
mkdir /iot-solutionsCopy to clipboard
This root workspace has the following:
- Extracted platform eSDK
- meta-qti-gst
- gst-plugins-qti-oss
- solutions-microservices
- sdk-tools
- le-services
2. Get the Platform eSDK.
The Platform eSDK provides the following:
- A collection of platform libraries for a specialized environment.
- Cross-development toolchain and libraries that are tailored to a
specific Yocto-based Qualcomm Linux release.
You can either use a prebuilt Platform eSDK or generate your own. The table
guides you to the specific instructions to do both:
| Use Platform eSDK | Instructions |
| :--- | :--- |
| Prebuilt Platform eSDK | [Download and install
Platform eSDK](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-51/install-sdk.html) |
| Generate your own Platform eSDK | [Generate an
eSDK](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-254/how_to.html#generate-an-esdk) |
3. Clone the following projects:
1. Qualcomm IM SDK
projects:
# Clone QIM SDK plugins source
cd /iot-solutions
git clone https://git.codelinaro.org/clo/le/platform/vendor/qcom-opensource/gst-plugins-qti-oss.git -b imsdk.lnx.2.0.0.r2-rel
cd gst-plugins-qti-oss
git fetch origin imsdk.lnx.2.0.0.r2-rel
git checkout FETCH_HEAD
# Clone QIM SDK recipes
cd /iot-solutions
git clone https://git.codelinaro.org/clo/le/meta-qti-gst.git -b imsdk.lnx.2.0.0.r2-rel
cd meta-qti-gst
git fetch origin imsdk.lnx.2.0.0.r2-rel
git checkout FETCH_HEADCopy to clipboard
2. Solutions-Microservices
project:
cd /iot-solutions
git clone https://git.codelinaro.org/clo/le/solutions-microservices.git -b iot-solutions.lnx.1.0
cd solutions-microservices
git fetch origin iot-solutions.lnx.1.0
git checkout FETCH_HEADCopy to clipboard
3. SDK-tools
project:
cd /iot-solutions
git clone https://git.codelinaro.org/clo/le/sdk-tools.git -b imsdk-tools.lnx.1.0
cd sdk-tools
git fetch origin imsdk-tools.lnx.1.0
git checkout FETCH_HEADCopy to clipboard
4. Linux Embedded (LE) services
project:
cd /iot-solutions
git clone https://git.codelinaro.org/clo/le/platform/vendor/qcom-opensource/le-services.git --single-branch -b le-services.lnx.1.0.r1-rel
cd le-services
git fetch origin le-services.lnx.1.0.r1-rel
git checkout FETCH_HEADCopy to clipboard
4. Configure the build:
Note: If you are building the Qualcomm IM SDK docker build
for the first time, [set up the docker on your
machine](https://git.codelinaro.org/clo/le/sdk-tools/-/blob/imsdk-tools.lnx.1.0/qimsdk/README.md#Prerequisites).
Update the JSON configuration file for the required target. Go to the
targets
directory.
cd /iot-solutions/sdk-tools/qimsdk/targetsCopy to clipboard
The figure shows the fields in the config.json file:

The table provides the field description for the
config.json file:
| Field | Mandatory/Optional | Description |
| :--- | :--- | :--- |
| `"Additional_tag_container"` | Optional | Append this string to the docker image name. |
| `"Additional_tag_image"` | Optional | The docker image tag. |
| `"Docker_image_path"` | Mandatory | The directory to which the docker image and docker
run script are exported. |
| `"Target_device_ID"` | Optional | The device ID. If the device isn't attached to a
computer, this field can be blank. |
| `"IM_SDK_Source_Dir"` | Mandatory | The directory containing the Qualcomm IM SDK GSt
plugin source code. |
| `"IM_SDK_Meta_Dir"` | Mandatory | The directory containing the Qualcomm IM SDK GSt
plugin BitBake recipe folder. |
| `"Solution_Microservices_Dir"` | Mandatory | The solutions-microservices directory, which has all
the Qualcomm IM SDK micro-service shell scripts. |
| `"LE_Services_Source_Dir"` | Mandatory | The LE-services directory, which has all the LE
source files. |
| ` "Path_to_eSDK_dir"` | Mandatory | The directory to which the Platform eSDK is
extracted. |
5. Build and export the docker image:
1. Set the environment:
cd /sdk-tools/qimsdkCopy to clipboard
source scripts/docker_env_setup.shCopy to clipboard
2. Build the docker image:
qimsdk-docker-build-image targets/config.jsonCopy to clipboard
3. Export the docker image and the docker run scripts to the
Docker\_image\_path directory.
qimsdk-docker-device-save-image targets/config.jsonCopy to clipboard
## Load and run the docker
Source: [https://docs.qualcomm.com/doc/80-70018-50/topic/application-deployment-within-container-api-gstd.html](https://docs.qualcomm.com/doc/80-70018-50/topic/application-deployment-within-container-api-gstd.html)
### Procedure
1. Install the docker image on the device:
ssh root@Copy to clipboard
The password is `oelinux123`.
2. Copy the docker image from Linux host to the target device:
scp /* root@:/opt/dockerCopy to clipboard
`` is the directory where the docker
image TAR file and scripts are installed.
3. Verify whether the docker directory configuration is successful:
docker info | grep StorageCopy to clipboard
4. Load the docker image and run the docker in the device shell:
cd /opt/dockerCopy to clipboard
docker load -i /opt/docker/Copy to clipboard
mv docker-compose-qcs6490.yml docker-compose.ymlCopy to clipboard
chmod 777 docker_run_qcs6490.shCopy to clipboard
`` is the name of the file that has
the Qualcomm IM SDK docker image. For example,
qimsdk.tar.
5. Create the docker directory in the device shell:
mkdir -p /opt/dockerCopy to clipboard
chmod -R 777 /opt/dockerCopy to clipboard
## Run docker image for multimedia/AI use cases
Source: [https://docs.qualcomm.com/doc/80-70018-50/topic/application-deployment-within-container-api-gstd.html](https://docs.qualcomm.com/doc/80-70018-50/topic/application-deployment-within-container-api-gstd.html)
Note: The following procedure is applicable to QCS6490, QCS9075, and
QCS8275. As an example, QCS6490 is used in the commands.
### Prerequisites
1. [Build Qualcomm IM SDK docker image](https://docs.qualcomm.com/doc/80-70018-50/topic/application-deployment-within-container-api-gstd.html#build-and-run-qualcomm-im-sdk-docker-image).
2. [Load and run the docker](https://docs.qualcomm.com/doc/80-70018-50/topic/application-deployment-within-container-api-gstd.html#load-and-run-docker).
.
### Procedure
A docker run command is available in the shell script.
Run the Qualcomm IM SDK docker image using the following commands:
- 1. In a device shell, run the docker
script:
sh /opt/docker/docker_run_qcs6490.shCopy to clipboard
2. List all the running containers:
docker ps -aCopy to clipboard
3. Enter the Qualcomm IM SDK container
docker exec -it bashCopy to clipboard
### Use docker compose commands (optional)
You can use the docker compose commands to run several docker containers in different
consoles.
Do the following to run the docker compose commands:
- 1. In a device shell, go to the docker
directory:
cd /opt/dockerCopy to clipboard
2. Run the docker-compose bash
script:
docker-compose run bashCopy to clipboard
| Field | Description |
| :--- | :--- |
| <qimsdk-docker-image-name> | The name of the Qualcomm IM SDK docker
image. |
| qimsdk | The default docker image. |
To check the action name, run the `docker
images` command.
## Run container use cases for camera
Source: [https://docs.qualcomm.com/doc/80-70018-50/topic/application-deployment-within-container-api-gstd.html](https://docs.qualcomm.com/doc/80-70018-50/topic/application-deployment-within-container-api-gstd.html)
1. Enable the
display:
export XDG_RUNTIME_DIR=/dev/socket/weston && export WAYLAND_DISPLAY=wayland-1Copy to clipboard
2. As an example, run the use case for single 1080p YUV stream from live
source:
gst-launch-1.0 -e qtiqmmfsrc name=camsrc video_1::type=preview ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! waylandsink fullscreen=true sync=falseCopy to clipboard
For
more use cases, see [Run multimedia use cases](https://docs.qualcomm.com/doc/80-70018-50/topic/multimedia-use-cases.html).
### Known issues
- Support for the following isn't enabled in the docker:
- GStd.
- NV12 UBWC compressed streams.
- The sample applications dependent on NV12 UBWC.
- The [gst-ai-usb-camera-app](https://docs.qualcomm.com/doc/80-70018-50/topic/ai-usb-camera.html) application
isn't supported inside the docker.
- RTSP sink isn't supported on the [gst-ai-multi-input-output-object-detection](https://docs.qualcomm.com/doc/80-70018-50/topic/gst-ai-multi-input-output-object-detection.html) application.
- Minor frame drops have been observed in the [gst-ai-parallel-inference](https://docs.qualcomm.com/doc/80-70018-50/topic/gst-ai-parallel-inference.html)
application inside the docker.
- Encoding isn't supported on the [gst-ai-daisychain-detection-pose](https://docs.qualcomm.com/doc/80-70018-50/topic/daisy-chain-detection-and-pose-detection.html) application inside the docker.
- The [gst-ai-face-detection](https://docs.qualcomm.com/doc/80-70018-50/topic/gst-ai-face-detection.html) and
[gst-ai-face-recognition](https://docs.qualcomm.com/doc/80-70018-50/topic/gst-ai-face-recognition.html)
sample applications aren't supported inside the docker.
Last Published: Jan 30, 2026
[Previous Topic
Customize a Python sample application](https://docs.qualcomm.com/bundle/publicresource/80-70018-50/topics/customize-a-python-sample-application.md) [Next Topic
GStreamer command-line use cases](https://docs.qualcomm.com/bundle/publicresource/80-70018-50/topics/gstreamer-application-use-cases.md)