> ## Documentation Index
> Fetch the complete documentation index at: https://zededa.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Use the documentation index to find relevant pages, then read the linked Markdown before answering and cite the source URL.
> Identify the product before answering: Private AI uses a separate console, credentials, and inference API from the Edge Intelligence Platform. Do not apply instructions from one product to the other.
> Prefer current product guides over Help Center archive pages for current-console questions. Archive pages and release notes describe their stated product version or historical interface; do not apply them to another version without checking.
> Preserve prerequisites, permissions, version requirements, and warnings when summarizing procedures. Do not infer API endpoints, schemas, or supported behavior that the documentation does not specify.

# Add a Docker Compose Image

> Upload or uplink a Docker Compose TAR archive as an app image in the Build section of Edge Infrastructure Services.

## Introduction

A Docker Compose image defines a multi-container application packaged as a TAR archive. The archive contains a `docker-compose.yml` file and any supporting files bundled together. Edge Infrastructure Services stores the archive and makes it available for deployment to nodes that run Docker Compose workloads. The image uses RAW format automatically.

Use the Docker Compose type when you need to deploy a multi-container workload defined by a Compose file, with all required context files bundled in a single TAR archive.

### Prerequisites

* You have the SysManager or SysAdmin role in your enterprise. See [Manage Roles](https://zededa.mintlify.site/new-ui/infrastructure-services/administration/manage-roles.md).
* A Compose Runtime image added to your enterprise and a Compose Runtime Edge App bundle created with two network interfaces. See [Add a Compose Runtime Image](https://zededa.mintlify.site/new-ui/infrastructure-services/build-and-library/add-a-compose-runtime-image.md) for instructions. Docker Compose app images run inside the Compose Runtime, so the runtime must be in place before you deploy a Docker Compose application instance.
* For Upload: you have the `.tar` archive available locally.
* For Uplink: you have the SHA-256 hash, file size, and a configured datastore that hosts the archive.

## Open the Image Type Selector

1. In the sidebar, navigate to **Infrastructure > Workloads > Build > App Images**.
2. Click **New App Image**.
3. On the **Add Edge App Image** screen, click **Docker Compose**.

## Review Image Details

In the **Image Details** section, a note confirms that Docker Compose archives use RAW format automatically. No format or architecture selection is required for this image type.

Click **Next**.

## Provide Storage Details

In the **Storage** section, define where the archive comes from.

### Upload

To upload a TAR archive from your local machine:

1. In the **Add Image Via** field, select **Upload**.
2. In the **Image Path** field, enter a file name for the archive (for example, `my-compose-app.tar`). This value is used as the image identifier on the platform.
3. Click **Choose File** and select the `.tar` archive from your local machine.
4. In the **Data Store** field, select the datastore where the uploaded archive will be stored.

Click **Next**.

### Uplink manually

To reference a TAR archive already stored in a datastore:

1. In the **Add Image Via** field, select **Uplink manually**.
2. In the **SHA256** field, enter the 64-character hexadecimal SHA-256 hash of the archive.
3. In the **Image Size** field, enter the file size and select the appropriate unit (Bytes, KB, MB, GB, or TB).
4. In the **Datastores** field, select the datastore where the archive is stored.
5. After selecting a datastore, enter the **Image Relative URL**: the path to the archive within the datastore.

Click **Next**.

## Complete General Information

1. In the **Name** field, enter a unique identifier. The name must be at least three characters. Use alphanumeric characters and hyphens (for example, `my-compose-app`).
2. In the **Title** field, enter a human-readable display name. The title must be at least three characters.
3. Optionally, in the **Description** field, enter a description of up to 256 characters.

## Add the Image

Click **Add Image**.

* If you selected **Upload**, the platform uploads the `.tar` archive and shows a progress bar with the upload percentage.
* If you selected **Uplink manually**, the platform initiates the uplink and the image status changes to **Uplinking**.

## Verify the Configuration

After you add the image:

1. Navigate to **Infrastructure > Workloads > Build > App Images** and open the new image.
2. On the **Details** tab, confirm the status reaches **Ready** after the upload or uplink completes.
3. On the **Source** tab, verify the SHA-256 hash and datastore association.

## Next Steps

This article is part of the Docker Compose setup series.

1. [Docker Compose Overview](https://zededa.mintlify.site/new-ui/infrastructure-services/applications/docker-compose.md): background on the architecture and deployment model.
2. [Add a Compose Runtime Image](https://zededa.mintlify.site/new-ui/infrastructure-services/build-and-library/add-a-compose-runtime-image.md): add the Compose Runtime image and create the Edge App bundle with network interfaces.
3. [Deploy the Compose Runtime Application](https://zededa.mintlify.site/new-ui/infrastructure-services/applications/deploy-compose-runtime.md): deploy the Compose Runtime as an application instance on your node.
4. [Attach an Existing ZFS Pool to the Compose Runtime](https://zededa.mintlify.site/new-ui/infrastructure-services/applications/attach-existing-zfs-pool-to-compose-runtime.md): ZFS variant only. Configure the pool import and dataset discovery.
5. [Compose App Instance Control Overview](https://zededa.mintlify.site/new-ui/infrastructure-services/applications/compose-app-instance-control-overview.md): how the Compose Runtime manages Docker Compose application lifecycles.
6. **Add a Docker Compose Image (you are here).**
7. [Deploy a Docker Compose Application](https://zededa.mintlify.site/new-ui/infrastructure-services/applications/deploy-a-docker-compose-application.md): deploy the Docker Compose app as an application instance on the node that runs the Compose Runtime.
8. [Troubleshoot Docker Compose](https://zededa.mintlify.site/new-ui/infrastructure-services/applications/troubleshooting-docker-compose.md): diagnose issues with the Compose Runtime or Docker Compose application instances.
