Docker Compose's integration for ECS and ACI will be retired in November 2023 – Docker

by
Maya Patel
azure-active-directory boot2docker django docker-compose

Quick Fix: Use Azure CLI to deploy your application on Azure. Refer to the provided tutorial for guidance. Follow the discussion on GitHub for updates on the retirement of Docker Compose’s integration with ECS and ACI.

The Problem:

As Docker Compose’s integration for Amazon ECS and Azure ACI will be retired in November 2023, users are encountering an error message, "Docker Compose’s integration for ECS and ACI will be retired in November 2023," when attempting to build Docker images. The users are unable to proceed with building or running the images, hindering their deployment process. Prior attempts to resolve the issue, such as Docker desktop updates, have not yielded results.

The Solutions:

Solution 1: Switch to Azure CLI for Deployment

Regrettably, there’s no immediate action you can take to address the retirement of Docker Compose’s integration for ECS and ACI. The developers are shifting their focus from the Docker CLI to alternative projects like compose-ecs for AWS ECS.

Since you’re deploying to Azure, it’s recommended that you utilize the Azure CLI to deploy your application. This link provides a comprehensive guide for deploying a containerized application on Azure: [Deploy a Container App in Azure with Azure CLI](https://docs.microsoft.com/en-us/learn/modules/deploy-container-app-azure-cli/).

Additionally, you can monitor the progress and updates related to this transition by following the discussion on GitHub: [Docker Compose for ECS Issues](https://github.com/docker/compose-cli/issues/2258).

Solution 2: Use Amazon ECS CLI to Deploy Compose Files

Since Docker Compose’s integration for ECS and ACI will be retired in November 2023, you can use the native amazon-ecs-cli tool to deploy compose files. Follow these steps to deploy a Docker Django container to Azure using amazon-ecs-cli:

  1. Install amazon-ecs-cli:

    • On Windows, download and install the amazon-ecs-cli MSI package from here.
    • On macOS or Linux, install amazon-ecs-cli using Homebrew or another package manager.
  2. Configure AWS Credentials:

    • Set up your AWS credentials using one of the following methods:
      • Use the AWS CLI to configure your credentials:
        aws configure
        
      • Create an IAM user with the necessary permissions and generate an access key ID and secret access key. Then, set environment variables for the access key ID and secret access key.
  3. Create an ECS Cluster and Service:

    • Create an ECS cluster using the ecs-cli command:

      ecs-cli create-cluster --name my-cluster
      
    • Create an ECS service based on your Docker Compose file:

      ecs-cli compose --file docker-compose-deploy.yml create
      
  4. Deploy the Service:

    • Deploy the service to the ECS cluster:
      ecs-cli compose --file docker-compose-deploy.yml deploy
      
  5. View the Service Status:

    • Check the status of your service:
      ecs-cli compose --file docker-compose-deploy.yml ps
      
  6. Access the Application:

    • Obtain the public IP address of the ECS instance where your Django container is running:

      ecs-cli compose --file docker-compose-deploy.yml inspect | jq -r '.deployments[0].runningTasks[0].containers[0].networkBindings[0].hostPort'
      
    • Access your Django application using the public IP address and port obtained in the previous step.

Q&A

How to handle the message: Docker Compose’s integration for ECS and ACI will be retired in November 2023?

You can’t do much, they are moving from the docker cli to other projects, such as compose-ecs for AWS ECS.

Why did they discontinue the Docker Compose integration with ECS and ACI?

I can only assume it’s because the native amazon-ecs-cli tool can deploy compose files itself.

Video Explanation:

The following video, titled "Docker Compose in 12 Minutes - YouTube", provides additional insights and in-depth exploration related to the topics discussed in this post.

Play video

Learn how to use Docker Compose to run multi-container applications easily. This is the second video in this Docker series. Learn Docker in ...