# Deploy Qualcomm IM SDK as a container

Source: [https://docs.qualcomm.com/doc/80-70022-50/topic/application-deployment-within-container-api-gstd.html](https://docs.qualcomm.com/doc/80-70022-50/topic/application-deployment-within-container-api-gstd.html)

Build Qualcomm IM SDK within a [Docker container](https://docs.docker.com/) and prepare the final device Docker image,
        which you deploy 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
            
            <?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" width="733.192741394042969" height="335" viewbox="0 0 733.192741394042969 335">
  <defs>
    <style>.svg-1 .cls-1 { stroke: #000 }
.svg-1 .cls-1,.svg-1 .cls-2,.svg-1 .cls-3,.svg-1 .cls-4 { fill: none; stroke-miterlimit: 10 }
.svg-1 .cls-5 { fill: #d2d7e1 }
.svg-1 .cls-6 { font-family: Roboto-Regular, Roboto }
.svg-1 .cls-6,.svg-1 .cls-7 { font-size: 16px }
.svg-1 .cls-2 { stroke-dasharray: 12.020689964294434 6.010344982147217 }
.svg-1 .cls-2,.svg-1 .cls-3,.svg-1 .cls-4 { stroke: #505050 }
.svg-1 .cls-2,.svg-1 .cls-4 { stroke-width: 2px }
.svg-1 .cls-3 { stroke-width: 1.5px }
.svg-1 .cls-4 { stroke-dasharray: 12.002839088439941 6.001419544219971 }
.svg-1 .cls-8 { fill: #fafafa }
.svg-1 .cls-7 { font-family: Roboto-Medium, Roboto; font-weight: 500 }</style>
  </defs>
  <g>
    <rect class="cls-8" x=".500175476074219" y=".5" width="732.19287109375" height="334" rx="7.5" ry="7.5"></rect>
    <path class="cls-5" d="M725.192741394042969,1c3.85980224609375,0,7,3.14019775390625,7,7v319c0,3.859832763671875-3.14019775390625,7-7,7H8.000003814697266c-3.859821319580078,0-7.000003814697266-3.140167236328125-7.000003814697266-7V8c0-3.85980224609375,3.140182495117188-7,7.000003814697266-7h717.192737579345703M725.192741394042969,0H8.000003814697266C3.581733703613281,0,0,3.58172607421875,0,8v319c0,4.41827392578125,3.581733703613281,8,8.000003814697266,8h717.192737579345703c4.41827392578125,0,8-3.58172607421875,8-8V8c0-4.41827392578125-3.58172607421875-8-8-8h0Z"></path>
  </g>
  <g>
    <rect class="cls-2" x="20.000564575195312" y="19.999999998848466" width="469.191596984863281" height="295.000000002303068" rx="7.999968498107921" ry="7.999968498107921"></rect>
    <rect class="cls-3" x="289.1927209034111" y="40" width="180" height="255" rx="8" ry="8"></rect>
    <rect class="cls-5" x="309.1927209034111" y="77.264322916670608" width="140" height="60" rx="4" ry="4"></rect>
    <text class="cls-6" transform="translate(329.708244323730469 111.940103530883789)"><tspan x="0" y="0">Helper scripts</tspan></text>
    <text class="cls-7" transform="translate(344.184806823730469 64.063632965087891)"><tspan x="0" y="0">SDK tools</tspan></text>
    <rect class="cls-5" x="309.1927209034111" y="145.999999999992724" width="140" height="60" rx="4" ry="4"></rect>
    <text class="cls-6" transform="translate(338.684806823730469 180.67578125)"><tspan x="0" y="0">Config.json</tspan></text>
    <rect class="cls-5" x="309.1927209034111" y="214.735677083313931" width="140" height="60" rx="4" ry="4"></rect>
    <text class="cls-6" transform="translate(343.298088073730469 249.411468505859375)"><tspan x="0" y="0">Dockerfile</tspan></text>
    <g>
      <rect class="cls-5" x="39.1927209034111" y="77.264322916670608" width="220" height="60" rx="4" ry="4"></rect>
      <text class="cls-6" transform="translate(67.626457214355469 102.340166091918945)"><tspan x="0" y="0">Platform standard SDK</tspan><tspan x="-14.6953125" y="19.2001953125">(platform libs and headers)</tspan></text>
    </g>
    <g>
      <rect class="cls-5" x="39.1927209034111" y="145.999999999992724" width="220" height="60" rx="4" ry="4"></rect>
      <text class="cls-6" transform="translate(91.333305358886719 180.675613403320312)"><tspan x="0" y="0">QIM SDK source</tspan></text>
    </g>
    <g>
      <rect class="cls-5" x="39.1927209034111" y="214.735677083313931" width="220" height="60" rx="4" ry="4"></rect>
      <text class="cls-6" transform="translate(72.099052429199219 239.81103515625)"><tspan x="0" y="0">Solution-Microservice</tspan><tspan x="52.86328125" y="19.2001953125">source</tspan></text>
    </g>
    <g>
      <rect class="cls-4" x="533.193275451536692" y="19.999999998758938" width="179.998886108521901" height="295.000000002482125" rx="7.99996674801009" ry="7.99996674801009"></rect>
      <g>
        <g>
          <rect class="cls-5" x="553.192720903425652" y="40.051014633789237" width="140" height="75" rx="4" ry="4"></rect>
          <text class="cls-6" transform="translate(591.544242858886719 72.626693725585938)"><tspan x="0" y="0">QIM SDK</tspan><tspan x="-17.359375" y="19.2001953125">Docker image</tspan></text>
        </g>
        <g>
          <rect class="cls-5" x="553.192720903425652" y="130" width="140" height="75" rx="4" ry="4"></rect>
          <text class="cls-6" transform="translate(566.923149108886719 162.575843811035156)"><tspan x="0" y="0">Shell script with</tspan><tspan x="-.2265625" y="19.2001953125">Docker run Cmd</tspan></text>
        </g>
        <g>
          <rect class="cls-5" x="553.192720903425652" y="219.948985366210763" width="140" height="75" rx="4" ry="4"></rect>
          <text class="cls-6" transform="translate(563.040458679199219 252.52435302734375)"><tspan x="0" y="0">Docker compose</tspan><tspan x="31.1796875" y="19.2001953125">YML file</tspan></text>
        </g>
      </g>
    </g>
    <g>
      <line class="cls-1" x1="259.192726135253906" y1="107.264312744140625" x2="283.451744079589844" y2="107.264312744140625"></line>
      <polygon points="282.284538269042969 111.253387451171875 289.192726135253906 107.264312744140625 282.284538269042969 103.275268554686591 282.284538269042969 111.253387451171875"></polygon>
    </g>
    <g>
      <line class="cls-1" x1="259.192726135253906" y1="176" x2="283.451744079589844" y2="176"></line>
      <polygon points="282.284538269042969 179.98907470703125 289.192726135253906 176 282.284538269042969 172.01092529296875 282.284538269042969 179.98907470703125"></polygon>
    </g>
    <g>
      <line class="cls-1" x1="490.165000915527344" y1="159.075836181640625" x2="526.235038757324219" y2="159.075836181640625"></line>
      <polygon points="525.067832946777344 163.064910888671875 531.976005554199219 159.075836181640625 525.067832946777344 155.086791992186591 525.067832946777344 163.064910888671875"></polygon>
    </g>
    <g>
      <line class="cls-1" x1="259.192726135253906" y1="244.735687255859375" x2="283.451744079589844" y2="244.735687255859375"></line>
      <polygon points="282.284538269042969 248.7247314453125 289.192726135253906 244.735687255859375 282.284538269042969 240.746612548828125 282.284538269042969 248.7247314453125"></polygon>
    </g>
  </g>
</svg>

Note: This section isn't applicable for the Ubuntu
            Server.

The following 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 | <ul class="ul" id="application-deployment-within-container-api-gstd__ul_hnh_nyc_pdc"><br>                                    <li class="li">Provides the platform dependencies for Qualcomm IM SDK.</li><br><br>                                    <li class="li">Contains platform libraries and header files.</li><br><br>                                </ul> |
| Qualcomm IM SDK source code | Contains the source code of the plugins and recipe files, which<br>                                build and define the compile time dependencies. |
| solutions-microservices | Provides the AI pipelines that are required for<br>                                microservices. |
| sdk-tools | <ul class="ul" id="application-deployment-within-container-api-gstd__ul_h3b_5yc_pdc"><br>                                    <li class="li">Provides the Docker files and a set of helper scripts to<br>                                        generate the Qualcomm IM SDK device Docker container.</li><br><br>                                    <li class="li">Provides the <em class="ph i">run</em> commands for the reference Docker,<br>                                        and the YAML compose files to run the Docker<br>                                        containers.</li><br><br>                                    <li class="li">Maps all the required platform devices and libraries to<br>                                        provide hardware acceleration inside the Docker<br>                                        container.</li><br><br>                                </ul> |

- **[Build a Qualcomm IM SDK Docker image](https://docs.qualcomm.com/doc/80-70022-50/topic/build-and-run-qualcomm-im-sdk-docker-image.html)**
- **[Load and run the Docker image](https://docs.qualcomm.com/doc/80-70022-50/topic/load-and-run-docker.html)**
- **[Run a Docker image for multimedia/AI use cases](https://docs.qualcomm.com/doc/80-70022-50/topic/container-use-cases-for-camera.html)**
- **[Run camera use cases within a QIM container](https://docs.qualcomm.com/doc/80-70022-50/topic/container-use-cases-camera.html)**
- **[Run Docker image for GStD](https://docs.qualcomm.com/doc/80-70022-50/topic/container-use-cases-for-video-encode-and-ai-pipelines.html)**  

The Qualcomm IM SDK container is pre-installed with the Docker image for         GStD.

Last Published: Feb 20, 2026

[Previous Topic
Customize a Python sample application](https://docs.qualcomm.com/bundle/publicresource/80-70022-50/topics/customize-a-python-sample-application.md) [Next Topic
Build a Qualcomm IM SDK Docker image](https://docs.qualcomm.com/bundle/publicresource/80-70022-50/topics/build-and-run-qualcomm-im-sdk-docker-image.md)