Introduction
The Compose Runtime is a virtual machine application that runs the Docker Engine and the Compose App Instance Control agent on a node. You must deploy the Compose Runtime before you can deploy Docker Compose applications to that node. Edge Infrastructure Services deploys and manages the Compose Runtime as an application instance, just like any other edge workload. You can deploy only one Compose Runtime application instance per node, but a single Compose Runtime instance manages all Docker Compose applications deployed to that node. The deployment procedure is the same for the standard and ZFS runtime variants. The ZFS variant has one extra prerequisite and two extra verification steps, which are called out where they apply. For background on the two variants, see Add a Compose Runtime Image.Prerequisites
- EVE-OS (Edge Virtualization Engine) 14.5.0 LTS or greater on the target node.
- For the ZFS variant on a node that uses ZFS persistent storage: a 16.0.x LTS release of EVE-OS or greater. Earlier versions do not include the fix the runtime needs to import a ZFS pool. Nodes that use ext4 persistent storage do not have this additional requirement.
- You have the SysManager or SysAdmin role in your enterprise. See Manage Roles.
- A Compose Runtime edge app in your library, either imported from the Marketplace or created yourself. See Add a Compose Runtime Image.
- A Switch virtual network created on the target node. See Create a Virtual Network.
- A Local air-gapped virtual network created on the target node. See Create a Virtual Network.
- For the ZFS variant: the existing ZFS pool volume instance is present on the target node, and you have completed the configuration in Attach an Existing ZFS Pool to the Compose Runtime.
Deploy the Compose Runtime Instance
This procedure deploys the Compose Runtime edge app as an application instance on your node. The wizard steps are General, Deployment Target, Network Interfaces, Custom Config, and Review. The following steps cover the settings specific to the Compose Runtime. For the full wizard, see Deploy an Application Instance.Complete the General step
- In the sidebar, select Infrastructure > Workloads > Applications.
- Select the contextual + create action to open the deployment wizard.
- Enter a Name and Title for the Compose Runtime instance. There are no specific naming requirements for these fields.
- Select Next.
Complete the Deployment Target step
- In Cluster/Nodes, select the node where you want to deploy the Compose Runtime instance. Select a single node, not a cluster.
- In Edge App, select your Compose Runtime edge app. Confirm that you selected the variant you intend to deploy. The ZFS variant has
-zfsin its name. - Expand Additional Configuration and check the Persistence Storage Size field. The value is prefilled from the Compose Runtime edge app and sets the size of the persistent data volume that stores the runtime’s own container state, such as Docker volumes created by Compose applications. Set it to match your VM drive size (for example, 10 GB), because the prefilled value might be larger than smaller nodes can hold. The persistent volume is created during deployment and its data survives upgrades of the runtime software. This is separate from an attached ZFS pool, which already exists on the node and is imported rather than created.
- Leave Start Delay at
0unless you need the Compose Runtime to wait before starting after deployment, and leave Enable Logs on so that Compose Runtime logs are available in Edge Infrastructure Services. - Select Next.
Complete the Network Interfaces step
The Compose Runtime requires two network interfaces.- For the first interface,
eth0, select your Switch virtual network. This interface provides data traffic connectivity and makes the services inside the containers reachable externally. - For the second interface,
eth1, select your Local air-gapped virtual network. This interface handles internal traffic between the Compose Runtime and Edge Infrastructure Services. - Select Next.
Complete the Custom Config step
The Compose Runtime uses the Custom Config step to collect user credentials and, optionally, static IP settings for the air-gapped interface. The field labels are defined by the Compose Runtime edge app’s configuration template.- Enter a Compose User Name for the Compose Runtime SSH user.
- Enter a Compose User Password.
- If you are using a static IP on the air-gapped interface, set Configure Static IP to Yes and fill in the IPv4 Address with Mask (for example,
192.168.0.11/24), Default Gateway, DNS Server IP Address, and NTP Server IP Address fields. - If you are using DHCP, leave Configure Static IP at its default value.
- Select Next.
Review and deploy
- Review the summary. Confirm that the correct edge app, node, network assignments, and custom configuration values are shown.
- For the ZFS variant, confirm that two drives are listed: the runtime image and the ZFS pool volume referenced by its label.
- Select Create Application.
Verify the Configuration
After deployment, verify that the Compose Runtime instance is running.- In the sidebar, select Infrastructure > Workloads > Applications.
- Locate the Compose Runtime instance in the list.
- Confirm that Run State shows Online.
- Select the instance name to open the detail page.
- On the Overview tab, verify that the runtime instance shows the expected state and uptime.
- For the ZFS variant, confirm that the imported datasets are mounted inside the runtime as described in Attach an Existing ZFS Pool to the Compose Runtime.
Deactivate or Delete the Runtime
You can stop a Compose Runtime instance after all of its Docker Compose application instances are stopped. Deleting the runtime still requires deleting the Docker Compose application instances first. See Manage an Application Instance.Next Steps
This article is part of the Docker Compose setup series.- Docker Compose Overview: background on the architecture and deployment model.
- Add a Compose Runtime Image: import or add the Compose Runtime edge app and choose a variant.
- Deploy the Compose Runtime Application (you are here).
- Attach an Existing ZFS Pool to the Compose Runtime: ZFS variant only. Configure the pool import and dataset discovery.
- Compose App Instance Control Overview: how the Compose Runtime manages Docker Compose application lifecycles.
- Add a Docker Compose Image: create the Docker Compose app image that runs inside the Compose Runtime.
- Deploy a Docker Compose Application: deploy the Docker Compose app as an application instance on the node that runs the Compose Runtime.
- Troubleshoot Docker Compose: diagnose issues with the Compose Runtime or Docker Compose application instances.