---
title: Set Up Docker Container Configurations for an Application Release
slug: edgemanager/lem-user-ui/product-features/marketplace-catalogs-and-applications/application-releases/add-a-draft-application-release/set-up-docker-container-configurations-for-an-application-re
description: An application release must contain at least one component (Containers/Containers Advanced) or a compose configuration file (Compose).
docTags: 
createdAt: 2022-11-24T21:15:33.000Z
---

An application release must contain at least one component (*Containers*/*Containers Advanced*) or a compose configuration file (*Compose*). Although it is possible to submit a Docker application release without at least one component (*Containers*/*Containers Advanced*) or a compose configuration file (*Compose*), the Docker application release cannot be later deployed to a Litmus Edge instance.&#x20;

The component or the compose configuration file sets up a configuration to extract at least one Docker image from a Docker repository to execute the Docker image's respective Docker container. This allows the Docker application release to package multiple Docker images (and the respective Docker containers) and deliver them to Litmus Edge instances concurrently. It is these Docker images from the component/compose configuration file that will be later deployed as Docker images to Litmus Edge instances during [Deploy an Application to Edge Devices](docId\:DruoOcegNxCGi-D_5azZw).



# Option 1 Containers: Set Up a Component

See the following on how to add/manage components for the *Containers* tab.

![](https://api.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/2m0b7gZE5lt1AX7PIF8g5_2023-07-2111-13-41.png "Containers: Components ")

| **Action**                                  | **Details**                                                                                                                                                                               |
| ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| \[1] **Show filter&#x20;**/ **Hide filter** |  Search by *Name*, *Image*.                                                                                                                                                               |
| \[2] **Add Component**                      | You can add multiple components. You can't add variables for a submitted application release.                                                                                             |
| \[3]  **Action menu**                       | - **Edit:&#x20;**&#x59;ou can't edit components for a submitted application release.&#x20;
- **Remove:&#x20;**&#x59;ou can't delete components for a submitted application release.&#x20; |

## More on Add Component

When adding a new component, a Docker image must be extracted from a Docker registry. The other available customizations enable additional configurations when executing the Docker container from the extracted Docker image.

Furthermore, when customizing the Docker image configurations, it is also possible to use the variables created from [Set Up Variables for an Application Release](docId\:HF5YyWh3bwhFi6m2jKxHt) as values.  The syntax for referring to these variables is `${VARIABLE_NAME}` where `VARIABLE_NAME` is the name of the variable being used.

### Step 1: Set Up Common Parameters

In this section, you will set up the initial configuration needed for a Docker image’s respective Docker container.

::Image[]{src="https://api.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/u9TZBjFfOAr6rYUbdYG0v_image.png" size="80" width="1550" height="658" position="center" caption="Add Component: Common Parameters" showCaption="true"}

- **Name**: Assign a name for Docker container. See [Assign name](https://docs.Docker.com/engine/reference/commandline/run/#assign-name-and-allocate-pseudo-tty---name--it) for details.
- **Repository**: The available registry provider of the Docker image. See [Registry Management](https://app.archbee.com/docs/VAKj8ZK5Bi9ApnYcgeYQr/M6yzedYRAwwYDnLDtOQlZ) and [Docker Registry](https://docs.Docker.com/registry/) for details.
- **Image:&#x20;**&#x54;he Docker image registry location for a Docker pull command. See [Pull From a Different Registry](https://docs.docker.com/engine/reference/commandline/pull/#pull-from-a-different-registry) for details. The image registry location must be both a valid registry location and accessible by Litmus Edge instances.
- **Restart**: The restart policy for the equivalent Docker container. See [Use a Restart Policy](https://docs.docker.com/config/containers/start-containers-automatically/#use-a-restart-policy) for details.
- **Network Mode**: The network settings for the equivalent Docker container. See [Network Settings](https://docs.docker.com/engine/reference/run/#network-settings) for details.
- **Enable TTY**: See `--tty` or `-t` of [Options](https://docs.docker.com/engine/reference/commandline/run/#options) and [Allocate Pseudo-TTY](https://docs.docker.com/engine/reference/commandline/run/#name) for details.
- **Open STDIN**: See the `--interactive` or `-i` option of [Options](https://docs.docker.com/engine/reference/commandline/run/#options) and [Allocate Pseudo-TTY](https://docs.docker.com/engine/reference/commandline/run/#name) for details.
- **Privileged**: See [Full Container Capabilities](https://docs.docker.com/engine/reference/commandline/run/#privileged) for details.
- **Command**: The command-line arguments used by the Docker container’s application when it executes.

### Step 2: Set Up Environment

In this section, you can set up the environment variables that the Docker container will use during its operation. See [Environment Variables](https://docs.docker.com/engine/reference/run/#env-environment-variables) for details.

::Image[]{src="https://api.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/U8mYfLW4ezm_6usD-GHNH_image.png" size="80" width="1553" height="451" position="center" caption="Add Component: Environment" showCaption="true"}

### Step 3: Set Up Labels

In this section you can set up metadata to the Docker container. See [Set Metadata on Container](https://docs.Docker.com/engine/reference/commandline/run/#set-metadata-on-container--l---label---label-file) for details.

::Image[]{src="https://api.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/_nzEkg2LOmnb6sIyxqX-m_image.png" size="80" width="1565" height="457" position="center" caption="Add Component: Labels" showCaption="true"}

### Step 4: Set Up Ports

In this section, you can set up the port management for the Docker container. See [Ports](https://docs.docker.com/network/#published-ports) for details.

::Image[]{src="https://api.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/E-l71hY1sGW0FfZwySYgO_image.png" size="80" width="1556" height="463" position="center" caption="Add Component: Ports" showCaption="true"}

### Step 5: Set Up Volumes

In this section, you can set up the data persistence mechanism for the Docker container. See [Use volumes](https://docs.docker.com/storage/volumes/) or [Use bind mounts](https://docs.docker.com/storage/bind-mounts/) for details.

::Image[]{src="https://api.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/o8YsMDDqj7Hl5Pbi5Cyqj_image.png" size="80" width="1557" height="445" position="center" caption="Add Component: Volumes" showCaption="true"}

# Option 2 Containers Advanced: Set Up a Component

This option is an upgraded version of *Option 1 Containers: Set Up a Component.&#x20;*&#x53;ee the following on how to add/manage components for the *Containers Advanced* tab.

::Image[]{src="https://api.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/FYp43y4JVR4xbkc8LpIoQ_image.png" size="80" width="1920" height="914" position="center" caption="Containers Advanced: Components " showCaption="true"}

| **Action**                                  | **Details**                                                                                                                                                                               |
| ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| \[1] **Show filter&#x20;**/ **Hide filter** |  Search by *Name*, *Image*.                                                                                                                                                               |
| \[2] **Add Component**                      | You can add multiple components. You can't add variables for a submitted application release.                                                                                             |
| \[3]  **Action menu**                       | - **Edit:&#x20;**&#x59;ou can't edit components for a submitted application release.&#x20;
- **Remove:&#x20;**&#x59;ou can't delete components for a submitted application release.&#x20; |

## More on Add Component

In *Option 1 Containers: Set Up a Component*, there are five steps where you may enter details for a pre-determined set of basic Docker parameters. The limitation of the previous option is that it is not possible to access and configure the remaining more advanced Docker parameters.&#x20;

When adding a new component, this second option offers a `.json` configuration form to access and configure the remaining advanced Docker parameters. The form will be used to request a Docker image from a selected Docker registry.&#x20;

### Step 1: Set Up Common Parameters

The first step is a simplified version of the *Step 1: Set Up Common Parameters* section from the previous option.

::Image[]{src="https://api.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/3VDDmrWGOCdsVX4fFaEak_image.png" size="80" width="1460" height="362" position="center" caption="Add Component: Common Parameters" showCaption="true"}

- **Name**: Assign a name for Docker container. [Assign name](https://docs.Docker.com/engine/reference/commandline/run/#assign-name-and-allocate-pseudo-tty---name--it) for details.
- **Repository**: The available registry provider of the Docker image. See [Registry Management](docId\:M6yzedYRAwwYDnLDtOQlZ) and [Docker Registry](https://docs.docker.com/registry/) for details.

### Step 2: Insert Container Create Configuration `.json` File

The second step allows you to create a Docker container by entering file contents for a Docker container configuration `.json` file. See [Create a container](https://docs.docker.com/engine/api/v1.40/#tag/Container/operation/ContainerCreate) for details.

Furthermore, when customizing the `.json` file, it is also possible to use the variables created from [Set Up Variables for an Application Release](docId\:HF5YyWh3bwhFi6m2jKxHt) as values. The syntax for referring to these variables is `${VARIABLE_NAME}` where `VARIABLE_NAME` is the name of the variable being used.

::Image[]{src="https://api.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/irDpL9L2d3pc3xyLBs2gG_image.png" size="80" width="1462" height="684" position="center" caption="Add Component: Config" showCaption="true"}

| **Action**                                                             | **Details**                                                                  |
| ---------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| \[1] **Import Component Config**                                       | Load the component configuration from an external source.                    |
| \[2] **Copy Config Content**                                           | Duplicate the current configuration content to the clipboard.                |
| \[3]  **Paste Config Content**                                         | Insert the previously copied configuration content into the designated area. |
| \[4] **Clear Config Content**                                          | Remove all existing configuration content from the input field.              |
| \[5] **Link to API specifications for&#x20;**[Creating a container](#) | Access documentation detailing the API procedures for container creation.    |
| \[6] **Enter Config Content**                                          | Input the configuration settings manually into the designated field.         |

# Option 3 Compose: Set up a Compose

This option is an even more upgraded version of the previous two options in the form of an alternative Compose subsection. Rather than creating a component one by one like the previous two options, you are able to set up multiple components all at once by entering a YAML Compose file to set up a multi-container application configuration. See [Compose specifications](https://docs.docker.com/compose/compose-file/) for details.

Furthermore, when customizing the YAML file, it is also possible to use the variables created from [Set Up Variables for an Application Release](docId\:HF5YyWh3bwhFi6m2jKxHt) as values.  The syntax for referring to these variables is `${VARIABLE_NAME}` where `VARIABLE_NAME` is the name of the variable being used.

::Image[]{src="https://api.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/WhJlUYeb3WXFmKg4-hqXe_image.png" size="80" width="1562" height="763" position="center" caption="Catalog Applications: Compose" showCaption="true"}

| **Action**                                                                                                           | **Details**                                                                    |
| -------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| \[1] **Import Compose File**                                                                                         | Allows users to upload a Compose file for processing.                          |
| \[2] **Copy Compose File**                                                                                           | Facilitates the duplication of a selected Compose file.                        |
| \[3] **Paste Compose File**                                                                                          | Enables the insertion of a copied Compose file into the designated location.   |
| \[4] **Clear Compose File**                                                                                          | Removes all content from the current Compose file.                             |
| \[5] **Link to Compose File format in&#x20;**[Compose specifications](https://docs.docker.com/compose/compose-file/) | Provides access to the official specifications for Compose file formatting.    |
| \[6] **Compose File Contents**                                                                                       | Displays the data and configuration included within the selected Compose file. |
| \[7] **View Supported Compose Objects**                                                                              | Lists all objects that are compatible with the Compose file format.            |

## Supported Compose Objects

When you click **Supported Compose Objects,&#x20;**&#x61; list of all the supported objects displays from the right.

::Image[]{src="https://api.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/ag1e26IfOOEEq_KxIIEwd_image.png" size="50" width="413" height="732" caption=" Supported Compose Objects" position="center" showCaption="true"}

When you attempt to **Save** a YAML Compose file with unsupported compose objects, an error such as the following appears. It will indicate all the invalid fields.

::Image[]{src="https://api.archbee.com/api/optimize/SSUUxKZUk9bFTEPNn_6Zo/mqvYl5xzLG2QXaTuh3ELM_image.png" size="80" width="777" height="322" position="center" caption="Invalid Data: unsupported Compose Objects" showCaption="true"}

